Snippets

Carlos Rueda ESPComponent testing with LRAUV and ESP simulators

You are viewing an old version of this snippet. View the current version.
Revised by Carlos Rueda b919e2a

ESPComponent/ESP testing with simulators on bufflehead and tethyssim:

Note: the config parameter ESPComponent.simulateHardware is false for these tests: the ESP simulator is still an external process and the ESPComponent interacts with it as if it were a real ESP.

Preparations

On bufflehead

Using trackSlots branch of the ESP software (commit cf51a340f91 / Tue Apr 30 10:07:49 2019 -0700).

As usual I have the code under carueda's account on bufflehead:

   $ cd esp2
   $ . ESPenv auv honu
   $ ESPmode=simreal

Tweak in ESP code to expedite the tests

If not already true, edit type/auv/initialize.rb to set rapid = true.

I've checked in a version that also reduced the processing time from 10:00 to 45 seconds when rapid = true

ESP simulator with available "dry" cartridges.

     -> slots spare: 10
     -> slots All => [:dry, :archive_bac]

:archive_bac is convenient for the test to complete quicker than with lyse-n-go.

Exit the ESP simulator for what follows

Then, in this bufflehead session, prepare the following command but do not launch it yet:

  $ ESPclient=tethyssim:9998 ESPcmdPort=7777 esp

This prepares the subsequent execution of the ESP system once the socket server (see below) is running on the simulated vehicle.

On tethyssim:

Using Missions/Maintenance/sample.xml for this testing. Parameters that can be adjusted for testing convenience, for example Depth = 1, NumberOfSamples = 2.

Here's my local relevant configuration, in Config/sim/carueda/Science.cfg:

   ESPComponent.loadAtStartup          = 1 bool;
   ESPComponent.simulateHardware       = 0 bool;

   ESPComponent.socketServerPort       = 9998 count; 

   ESPComponent.debug                  = 1 bool;
   ESPComponent.poTimeout              = 30 second;

Note:

  • Port 9998 on tethyssim is where the ESPComponent will listen and wait for the ESP to connect. (This port has been opened so it is accessible from bufflehead.)

  • Alternatively, instead of having the LRAUV running as the server waiting for the ESP, you can set:

    ESPComponent.espServerHost    = "bufflehead:7777"

in Config/sim/carueda/Science.cfg and immediately run the ESP command above. In this case, the LRAUV will connect to the ESP.

Running the mission:

On tethyssim

Make sure SimDaemon is running; if not already:

[carueda@tethyssim lrauv-application]$ bin/SimDaemon

We need to tell the ESPComponent that we are running the ESP manually, so we set the ESPCOMPONENT_MANUAL_ESP environment variable for this purpose:

[carueda@tethyssim lrauv-application]$ ESPCOMPONENT_MANUAL_ESP=1 bin/LRAUV -r -x \
   "load Maintenance/sample.xml;set sample.NumberOfSamples 2 count;set sample.Depth 1 centimeter;set sample.WaitBeforeSample 3 second;set sample:SampleAtDepth.TargetDepth 1 centimeter;run"

If running the LRAUV as server (for LRAUV-ESP interaction purposes), wait until [ESPComponent](IMPORTANT): Waiting for ESP to connect shows up on the output:

...
... [ESPComponent](IMPORTANT): Waiting for ESP to connect (timeout=30.0000)       <<<<<<<<<<<<<  HERE <<<<<<<<<<<<<<

on bufflehead

Right away launch the ESP simulator on the bufflehead session:

carueda@bufflehead:~/esp2$ ESPclient=tethyssim:9998 ESPcmdPort=7777 esp
@16:08:41.45PDT30-Apr-19 <simreal> Simulated gateway v3.24 for core bus
@16:08:41.46 Simulated secondary gateway v3.24 for cartridge bus
@16:08:41.53
Configuration for honu by brent@mbari.org 4/4/19
/home/carueda/esp2/type/auv/honu/configure.rb
@16:08:41.60 Polling Can every 5:00
Clients may connect on TCP port 7777
Connecting to tethyssim:9998
@16:08:41.78 <LRAUV> Session Begun
@16:08:44.18 -> showStatus
@16:08:45.78 -> Cmd.loadCartridge :archive
Gate.power :main,:ON
Gate.power :analytic1,:ON
Gate.power :analytic2,:ON
@16:08:45.79 Gate.power :analytic3,:ON
Gate.power :core,:ON
@16:08:45.80 Archive.configure :default
@16:08:45.81 Air.configure :default
@16:08:45.82 Lysis1.configure :default
Lysis2.configure :default
@16:08:45.83 Plunge.configure :default
@16:08:45.84 SamplePump.configure :default
@16:08:45.85 ExtraPump.configure :default
@16:08:45.86 Toroid.configure :default
Carousel.configure :default
@16:08:45.87 Pressure.configure :default
PinPort.configure :default
All elf controllers running firmware version 4.99
@16:08:45.88 Gate.power :motor,:ON
@16:08:45.89 <Archive_home> Archive.reconfigure :default
@16:08:45.90 Archive.home.jog 0
<Air_home> Air.reconfigure :default
@16:08:45.91 Air.home.jog 0
<Lysis1_home> Lysis1.reconfigure :default
<Lysis2_home> Lysis2.reconfigure :default
@16:08:45.92 <Lysis1_home> Lysis1.home.jog 0
<Plunge_home> Plunge.reconfigure :default
<Lysis2_home> Lysis2.home.jog 0
<PinPort_home> PinPort.reconfigure :default
@16:08:45.93 <Plunge_home> Plunge.home.jog 0
<Toroid_home> Toroid.reconfigure :default
<PinPort_home> PinPort.home.jog 0
@16:08:45.94 <Toroid_home> Toroid.home.jog 0
@16:08:45.98 <Archive_home> Archive.setRawPosition! 50
Archive.reconfigure :homing
Archive.seek :home
@16:08:45.99 <Air_home> Air.setRawPosition! 50
Air.reconfigure :homing
@16:08:46.00 Air.seek :home
@16:08:46.01 <Plunge_home> Plunge.setRawPosition! 50
Plunge.reconfigure :homing
Plunge.seek :home
@16:08:46.02 <PinPort_home> PinPort.setRawPosition! 0
PinPort.reconfigure :homing
@16:08:46.03 PinPort.seek :home
<Lysis1_home> Lysis1.setRawPosition! 50
@16:08:46.04 Lysis1.reconfigure :homing
Lysis1.seek :home
@16:08:46.05 <Lysis2_home> Lysis2.setRawPosition! 50
Lysis2.reconfigure :homing
@16:08:46.06 Lysis2.seek :home
@16:08:46.07 <Toroid_home> Toroid.setRawPosition! 0
Toroid.reconfigure :homing
Toroid.seek :home
@16:08:46.10 <PinPort_home> PinPort.reconfigure :default
@16:08:46.14 <Toroid_home> Toroid.reconfigure :default
@16:08:46.26 <Archive_home> Archive.reconfigure :default
@16:08:46.27 <Air_home> Air.reconfigure :default
@16:08:46.29 <Plunge_home> Plunge.reconfigure :default
@16:08:46.32 <Lysis1_home> Lysis1.reconfigure :default
@16:08:46.33 <Lysis2_home> Lysis2.reconfigure :default
@16:08:46.59 <LRAUV> Toroid.seek :clear
@16:08:48.20 Carousel.reconfigure :default
Carousel.home.jog 0
@16:08:48.28 Carousel.setRawPosition! -53
Carousel.reconfigure :homing
Carousel.seek :home
@16:08:48.58 Carousel.reconfigure :default
@16:08:48.84 Carousel.seek 1
@16:08:48.91 Selecting Cartridge 59
@16:08:48.92 Carousel.seek 59
@16:09:00.98 <Lysis2> Lysis2.seek :locked
@16:09:00.99 <Plunge> Plunge.seek :locked
@16:09:01.00 <Air> Air.seek :locked
@16:09:05.07 <LRAUV> Gate.power :cartridge,:ON
Loaded Archive Cartridge
Gate.power :cartridge,:OFF
@16:09:21.38 -> Cmd.startFiltering 10
@16:09:21.39 <FILTERING> Duration of filtering limited to 2:05:00
@16:09:21.40 Priming sample loop w/100ml, bypass w/10ml
SamplePump.setPosition! 0ml
Bypass.open
@16:09:22.11 Intake.open
@16:09:23.61 Sea 5.7m deep (23.1psia)
Waiting up to 20 seconds for sea pressure to stabilize +/-0.50psi
@16:09:26.13 Vacuum tare is 10% of full scale
Pressure.reconfigure :default
@16:09:26.14 Pressure.hold
@16:09:26.21 SamplePump.reconfigure :prime
SamplePump.seek 10ml,1:21
@16:09:35.18 Pressure.coast
@16:09:35.19 SamplePump.setPosition! 0ml
Exhaust.open
@16:09:37.38 <closeBypass> Bypass.close
@16:09:39.58 <FILTERING> Pressure.hold
@16:09:39.65 Sea 5.7m deep (23.1psia)
@16:09:39.66 SamplePump.reconfigure :prime
SamplePump.seek 100ml,8:51
@16:11:04.84 Pressure.coast
Bypass.open
@16:11:06.34 Intake.close
@16:11:07.84 Toroid.reconfigure :hold
Toroid.seek :crack
@16:11:08.64 Toroid.reconfigure :default
Toroid.seek :clear
@16:11:10.14 Toroid.reconfigure :hold
@16:11:10.15 Toroid.seek :cartridge
@16:11:11.96 Toroid.reconfigure :default
Toroid.seek :clear
@16:11:13.78 Pressurizing cartridge to 26psi above 23.1psia
SamplePump.setPosition! 0ml
Intake.open
@16:11:15.27 Bypass.close
@16:11:16.77 Exhaust.close
@16:11:18.28 Pressure.hold
@16:11:18.35 SamplePump.reconfigure :charge
SamplePump.seek 2.3ml,42 seconds
@16:11:20.23 Pressure.coast
Sampling 10.0ml
SamplePump.setPosition! 0ml
@16:11:20.24 Exhaust.open
@16:11:21.73 Pressure.hold
@16:11:21.81 Sea 5.7m deep (23.1psia)
SamplePump.reconfigure :sample
SamplePump.seek 10ml,1:21
@16:11:24.74 <sampling> Cartridge 59 sampling 2/10ml at 0.83ml/s with 0.0psi vacuum 5.7m deep (23.1psia)
@16:11:34.78 <FILTERING> Pressure.coast
<closeIntake> Intake.close
<closeExhaust> Exhaust.close
@16:11:34.79 <FILTERING> Toroid.reconfigure :hold
Toroid.seek :bypass
@16:11:36.41 Toroid.reconfigure :default
Toroid.seek :clear
@16:11:38.02 Sampled  10.0ml
@16:11:39.40 <LRAUV> -> Cmd.startProcessing
@16:11:39.41 <PROCESSING> Plunge.seek :reagent
@16:11:40.25 Sample loop closed. Ready to Deliver Reagents
Archive.seek :sealed
@16:11:44.52 Archive.seek :evac
@16:11:58.50 delay 20 seconds
@16:12:18.51 Archive.seek :clear
@16:12:36.28 RNAlater soak for 45 seconds
@16:13:21.28 Archive.seek :tVent
@16:13:23.86 delay 1 second
@16:13:24.86 Archive.seek :evac
@16:13:40.53 delay 10 seconds
@16:13:50.54 Sample preserved and evacuated
@16:13:51.42 <LRAUV> -> Cmd.stop
@16:13:51.43 Plunge.seek :locked
@16:13:52.27 PinPort.seek :clear
@16:13:52.34 <Archive> Archive.seek :clear
<Air> Air.seek :clear
@16:13:52.36 <Lysis2> Lysis2.seek :clear
@16:14:10.11 <LRAUV> Archive.coast
Air.coast
Lysis1.coast
Lysis2.coast
Plunge.coast
@16:14:10.12 SamplePump.coast
Toroid.coast
Carousel.coast
PinPort.coast
@16:14:10.19 Gate.power :motor,:OFF
Gate.power :core,:OFF
Gate.power :analytic1,:OFF
Gate.power :analytic2,:OFF
@16:14:10.20 Gate.power :analytic3,:OFF
Gate.power :main,:OFF
Safely stopped and ready to power off
@16:14:18.23 Session Ended

On tethyssim:

2019-04-30T23:08:42.213Z,1556665722.213 [ESPComponent](IMPORTANT): ESP has connected as client
2019-04-30T23:08:43.013Z,1556665723.013 [ESPComponent](IMPORTANT): [sample #1] Setting cartridge argument to :archive
2019-04-30T23:08:43.013Z,1556665723.013 [ESPComponent](IMPORTANT): [sample #1] ESP sampling sequence starting. Sampling state: S_WAITING_INITIAL_PROMPT
2019-04-30T23:08:43.414Z,1556665723.414 [sample:SampleAtDepth:SampleWrapper:SampleESP:C](ERROR): data element is not active.
2019-04-30T23:08:43.414Z,1556665723.414 [sample:SampleAtDepth:SampleWrapper:SampleESP:C](ERROR): data element is not active.
2019-04-30T23:08:43.414Z,1556665723.414 [sample:SampleAtDepth:SampleWrapper:SampleESP:C](IMPORTANT): ESP sampling at 0.152651 m in nan degC water with nan ug/l chlorophyll fluorescence.
2019-04-30T23:08:44.213Z,1556665724.213 [ESPComponent](IMPORTANT): [sample #1] ESP sampling state: S_PREPARING_SHOW_LOG
2019-04-30T23:08:44.613Z,1556665724.613 [ESPComponent](IMPORTANT): [sample #1] ESP sampling state: S_PREPARING_SHOW_STATUS
2019-04-30T23:08:46.213Z,1556665726.213 [ESPComponent](IMPORTANT): [sample #1] ESP sampling state: S_LOADING_CARTRIDGE
2019-04-30T23:09:21.819Z,1556665761.819 [ESPComponent](IMPORTANT): [sample #1] ESP sampling state: S_WAITING_FOR_PRIMING (@59,archive)
2019-04-30T23:09:23.419Z,1556665763.419 [ESPComponent](IMPORTANT): [sample #1] ESP sampling state: S_PRIMING (@100.0)
2019-04-30T23:09:24.219Z,1556665764.219 [ESPComponent](IMPORTANT): [sample #1] ESP sampling state: S_WAITING_FOR_FILTERING (@100.0)
2019-04-30T23:11:23.038Z,1556665883.038 [ESPComponent](IMPORTANT): [sample #1] ESP sampling state: S_FILTERING (@0.0)
2019-04-30T23:11:23.438Z,1556665883.438 [ESPComponent](IMPORTANT): [sample #1] ESP sampling state: S_WAITING_FOR_PAUSED (@0.0)
2019-04-30T23:11:39.440Z,1556665899.440 [ESPComponent](IMPORTANT): [sample #1] ESP sampling state: S_PAUSED (@10.0)
2019-04-30T23:11:39.840Z,1556665899.840 [ESPComponent](IMPORTANT): [sample #1] ESP sampling state: S_PROCESSING (@10.0)
2019-04-30T23:11:42.241Z,1556665902.241 [ESPComponent](IMPORTANT): [sample #1] ESP sampling state: S_WAITING_FOR_PROCESSED (@59,archive)
2019-04-30T23:13:51.860Z,1556666031.860 [ESPComponent](IMPORTANT): [sample #1] ESP sampling state: S_STOPPING (@59,archive)
2019-04-30T23:14:17.864Z,1556666057.864 [ESPComponent](IMPORTANT): [sample #1] ESP sampling sequence completed normally.
2019-04-30T23:14:17.865Z,1556666057.865 [sample:SampleAtDepth:SampleWrapper:SampleESP](INFO): Completed sample:SampleAtDepth:SampleWrapper:SampleESP
2019-04-30T23:14:17.865Z,1556666057.865 [sample:SampleAtDepth:SampleWrapper](INFO): Completed sample:SampleAtDepth:SampleWrapper
2019-04-30T23:14:17.865Z,1556666057.865 [sample:SampleAtDepth](INFO): Completed sample:SampleAtDepth
2019-04-30T23:14:18.264Z,1556666058.264 [ESPComponent](IMPORTANT): [sample #1] ESP log summary report (2 messages):
@16:08:48.91 Selecting Cartridge 59
@16:11:38.02 Sampled  10.0ml

2019-04-30T23:14:18.264Z,1556666058.264 [ESPComponent](IMPORTANT): powerDownESP IGNORED because manualEsp_
2019-04-30T23:14:18.265Z,1556666058.265 [sample:SampleRepeater:Sample](INFO): Completed sample:SampleRepeater:Sample
2019-04-30T23:14:18.265Z,1556666058.265 [sample:SampleRepeater](INFO): Completed sample:SampleRepeater
2019-04-30T23:14:18.265Z,1556666058.265 [sample](INFO): Completed sample
2019-04-30T23:14:18.265Z,1556666058.265 [MissionManager](INFO): sample is completed.
...

Captured ESP.log on vehicle side

Below are the contents of the ESP.log file as captured by the LRAUV.

Note, it shows all ESP streams due to my local config entry ESPComponent.debug = 1 bool;:

tethyssim>
[carueda@tethyssim lrauv-application]$ cat Logs/latest/ESP.log
##-- file opened 2019-04-30T23:08:43.013Z
<unknown> LRAUV
<unknown> \200
 <prompt> \200
 <prompt> \204
    <log> @16:08:44.18 -> showStatus
    <log> \201
 <result> true\200
 <prompt> \204
    <log> @16:08:45.78 -> Cmd.loadCartridge :archive
    <log> \207
 <status> STOPPED-->IDLE
 <status> \204
    <log> Gate.power :main,:ON
    <log> Gate.power :analytic1,:ON
    <log> Gate.power :analytic2,:ON
    <log> @16:08:45.79 Gate.power :analytic3,:ON
    <log> Gate.power :core,:ON
    <log> @16:08:45.80 Archive.configure :default
    <log> @16:08:45.81 Air.configure :default
    <log> @16:08:45.82 Lysis1.configure :default
    <log> Lysis2.configure :default
    <log> @16:08:45.83 Plunge.configure :default
    <log> @16:08:45.84 SamplePump.configure :default
    <log> @16:08:45.85 ExtraPump.configure :default
    <log> @16:08:45.86 Toroid.configure :default
    <log> Carousel.configure :default
    <log> @16:08:45.87 Pressure.configure :default
    <log> PinPort.configure :default
    <log> All elf controllers running firmware version 4.99
    <log> @16:08:45.88 Gate.power :motor,:ON
    <log> @16:08:45.89 <Archive_home> Archive.reconfigure :default
    <log> @16:08:45.90 Archive.home.jog 0
    <log> <Air_home> Air.reconfigure :default
    <log> @16:08:45.91 Air.home.jog 0
    <log> <Lysis1_home> Lysis1.reconfigure :default
    <log> <Lysis2_home> Lysis2.reconfigure :default
    <log> @16:08:45.92 <Lysis1_home> Lysis1.home.jog 0
    <log> <Plunge_home> Plunge.reconfigure :default
    <log> <Lysis2_home> Lysis2.home.jog 0
    <log> <PinPort_home> PinPort.reconfigure :default
    <log> @16:08:45.93 <Plunge_home> Plunge.home.jog 0
    <log> <Toroid_home> Toroid.reconfigure :default
    <log> <PinPort_home> PinPort.home.jog 0
    <log> @16:08:45.94 <Toroid_home> Toroid.home.jog 0
    <log> @16:08:45.98 <Archive_home> Archive.setRawPosition! 50
    <log> Archive.reconfigure :homing
    <log> Archive.seek :home
    <log> @16:08:45.99 <Air_home> Air.setRawPosition! 50
    <log> Air.reconfigure :homing
    <log> @16:08:46.00 Air.seek :home
    <log> @16:08:46.01 <Plunge_home> Plunge.setRawPosition! 50
    <log> Plunge.reconfigure :homing
    <log> Plunge.seek :home
    <log> @16:08:46.02 <PinPort_home> PinPort.setRawPosition! 0
    <log> PinPort.reconfigure :homing
    <log> @16:08:46.03 PinPort.seek :home
    <log> <Lysis1_home> Lysis1.setRawPosition! 50
    <log> @16:08:46.04 Lysis1.reconfigure :homing
    <log> Lysis1.seek :home
    <log> @16:08:46.05 <Lysis2_home> Lysis2.setRawPosition! 50
    <log> Lysis2.reconfigure :homing
    <log> @16:08:46.06 Lysis2.seek :home
    <log> @16:08:46.07 <Toroid_home> Toroid.setRawPosition! 0
    <log> Toroid.reconfigure :homing
    <log> Toroid.seek :home
    <log> @16:08:46.10 <PinPort_home> PinPort.reconfigure :default
    <log> @16:08:46.14 <Toroid_home> Toroid.reconfigure :default
    <log> @16:08:46.26 <Archive_home> Archive.reconfigure :default
    <log> @16:08:46.27 <Air_home> Air.reconfigure :default
    <log> @16:08:46.29 <Plunge_home> Plunge.reconfigure :default
    <log> @16:08:46.32 <Lysis1_home> Lysis1.reconfigure :default
    <log> @16:08:46.33 <Lysis2_home> Lysis2.reconfigure :default
    <log> @16:08:46.59 <LRAUV> Toroid.seek :clear
    <log> @16:08:48.20 Carousel.reconfigure :default
    <log> Carousel.home.jog 0
    <log> @16:08:48.28 Carousel.setRawPosition! -53
    <log> Carousel.reconfigure :homing
    <log> Carousel.seek :home
    <log> @16:08:48.58 Carousel.reconfigure :default
    <log> @16:08:48.84 Carousel.seek 1
    <log> \207
 <status> IDLE-->LOADING
 <status> LOADING-->LOADING@59,archive
 <status> \204
    <log> @16:08:48.91 Selecting Cartridge 59
    <log> @16:08:48.92 Carousel.seek 59
    <log> @16:09:00.98 <Lysis2> Lysis2.seek :locked
    <log> @16:09:00.99 <Plunge> Plunge.seek :locked
    <log> @16:09:01.00 <Air> Air.seek :locked
    <log> @16:09:05.07 <LRAUV> Gate.power :cartridge,:ON
    <log> Loaded Archive Cartridge
    <log> Gate.power :cartridge,:OFF
    <log> \207
 <status> LOADING-->READY@59,archive
 <status> \201
 <result> 59\200
 <prompt> \204
    <log> @16:09:21.38 -> Cmd.startFiltering 10
    <log> \207
 <status> READY-->PRIMING@100.0
 <status> \201
 <result> :FILTERING\200
 <prompt> \204
    <log> @16:09:21.39 <FILTERING> Duration of filtering limited to 2:05:00
    <log> @16:09:21.40 Priming sample loop w/100ml, bypass w/10ml
    <log> SamplePump.setPosition! 0ml
    <log> Bypass.open
    <log> @16:09:22.11 Intake.open
    <log> @16:09:23.61 Sea 5.7m deep (23.1psia)
    <log> Waiting up to 20 seconds for sea pressure to stabilize +/-0.50psi
    <log> @16:09:26.13 Vacuum tare is 10% of full scale
    <log> Pressure.reconfigure :default
    <log> @16:09:26.14 Pressure.hold
    <log> @16:09:26.21 SamplePump.reconfigure :prime
    <log> SamplePump.seek 10ml,1:21
    <log> @16:09:35.18 Pressure.coast
    <log> @16:09:35.19 SamplePump.setPosition! 0ml
    <log> Exhaust.open
    <log> @16:09:37.38 <closeBypass> Bypass.close
    <log> @16:09:39.58 <FILTERING> Pressure.hold
    <log> @16:09:39.65 Sea 5.7m deep (23.1psia)
    <log> @16:09:39.66 SamplePump.reconfigure :prime
    <log> SamplePump.seek 100ml,8:51
    <log> @16:11:04.84 Pressure.coast
    <log> Bypass.open
    <log> @16:11:06.34 Intake.close
    <log> @16:11:07.84 Toroid.reconfigure :hold
    <log> Toroid.seek :crack
    <log> @16:11:08.64 Toroid.reconfigure :default
    <log> Toroid.seek :clear
    <log> @16:11:10.14 Toroid.reconfigure :hold
    <log> @16:11:10.15 Toroid.seek :cartridge
    <log> @16:11:11.96 Toroid.reconfigure :default
    <log> Toroid.seek :clear
    <log> @16:11:13.78 Pressurizing cartridge to 26psi above 23.1psia
    <log> SamplePump.setPosition! 0ml
    <log> Intake.open
    <log> @16:11:15.27 Bypass.close
    <log> @16:11:16.77 Exhaust.close
    <log> @16:11:18.28 Pressure.hold
    <log> @16:11:18.35 SamplePump.reconfigure :charge
    <log> SamplePump.seek 2.3ml,42 seconds
    <log> @16:11:20.23 Pressure.coast
    <log> Sampling 10.0ml
    <log> SamplePump.setPosition! 0ml
    <log> @16:11:20.24 Exhaust.open
    <log> \207
 <status> PRIMING-->FILTERING@0.0
 <status> \204
    <log> @16:11:21.73 Pressure.hold
    <log> @16:11:21.81 Sea 5.7m deep (23.1psia)
    <log> SamplePump.reconfigure :sample
    <log> SamplePump.seek 10ml,1:21
    <log> @16:11:24.74 <sampling> Cartridge 59 sampling 2/10ml at 0.83ml/s with 0.0psi vacuum 5.7m deep (23.1psia)
    <log> @16:11:34.78 <FILTERING> Pressure.coast
    <log> <closeIntake> Intake.close
    <log> <closeExhaust> Exhaust.close
    <log> @16:11:34.79 <FILTERING> Toroid.reconfigure :hold
    <log> Toroid.seek :bypass
    <log> @16:11:36.41 Toroid.reconfigure :default
    <log> Toroid.seek :clear
    <log> @16:11:38.02 Sampled  10.0ml
    <log> \207
 <status> FILTERING-->PAUSED@10.0
 <status> \204
    <log> @16:11:39.40 <LRAUV> -> Cmd.startProcessing
    <log> \207
 <status> PAUSED-->PROCESSING@59,archive
 <status> \201
 <result> :PROCESSING\200
 <prompt> \204
    <log> @16:11:39.41 <PROCESSING> Plunge.seek :reagent
    <log> @16:11:40.25 Sample loop closed. Ready to Deliver Reagents
    <log> Archive.seek :sealed
    <log> @16:11:44.52 Archive.seek :evac
    <log> @16:11:58.50 delay 20 seconds
    <log> @16:12:18.51 Archive.seek :clear
    <log> @16:12:36.28 RNAlater soak for 45 seconds
    <log> @16:13:21.28 Archive.seek :tVent
    <log> @16:13:23.86 delay 1 second
    <log> @16:13:24.86 Archive.seek :evac
    <log> @16:13:40.53 delay 10 seconds
    <log> @16:13:50.54 Sample preserved and evacuated
    <log> \207
 <status> PROCESSING-->PROCESSED@59,archive
 <status> \204
    <log> @16:13:51.42 <LRAUV> -> Cmd.stop
    <log> @16:13:51.43 Plunge.seek :locked
    <log> @16:13:52.27 PinPort.seek :clear
    <log> @16:13:52.34 <Archive> Archive.seek :clear
    <log> <Air> Air.seek :clear
    <log> @16:13:52.36 <Lysis2> Lysis2.seek :clear
    <log> @16:14:10.11 <LRAUV> Archive.coast
    <log> Air.coast
    <log> Lysis1.coast
    <log> Lysis2.coast
    <log> Plunge.coast
    <log> @16:14:10.12 SamplePump.coast
    <log> Toroid.coast
    <log> Carousel.coast
    <log> PinPort.coast
    <log> @16:14:10.19 Gate.power :motor,:OFF
    <log> Gate.power :core,:OFF
    <log> Gate.power :analytic1,:OFF
    <log> Gate.power :analytic2,:OFF
    <log> @16:14:10.20 Gate.power :analytic3,:OFF
    <log> Gate.power :main,:OFF
    <log> Safely stopped and ready to power off
    <log> \207
 <status> PROCESSED-->STOPPED
 <status> \201
 <result> :STOPPED\200
##-- file closed 2019-04-30T23:19:32.721Z
HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.