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 ed90710

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

Optional: Tweak in ESP to simulate an error while processing

(NOTE: not exercised for a long while -- may need adjustment.)

In utils/auv/cmd.rb, add the line indicated:

def processCartridge cartNum
  ArS.jog 20000   # add this line
  archiveEvacAUV
end

ESP simulator with available "dry" cartridges.

Variations

Due to differences across branches, some misc notes from emails, etc.:

Pull the latest code and set up as follows:

  -> Cartridge.load!  All=>:dry; Cartridge.identify; Cartridge.dry :archive

Cartridge.identify tests all loaded cartridges and changes their type from :generic to :lysis or :archive. The result is a list of all the dry archive cartridges.

Once all the cartridges' types are known, you make simply:

  ->  Cmd.loadCartridge   :archive

to process the next dry archive cartridge.

The way we worked out last week relied on the fact that the simulator currently assumes all odd numbered slots contain an archive cartridge. This method works regardless of how the simulator allocates cartridge types.

But, it does rely on features in the trackSlots branch.

For the newCfg branch:

       -> Cmd.load! All.select{|slotNum|slotNum.odd?}=>:dry

This loads only the archive (odd numbered) cartridges such that, Note that this will also work with the trackSlots branch, but you need to use:

   -> Cartridge.load! All.select{|slotNum|slotNum.odd?}=>:dry
  • brent

For example (as used in this test), with all odd numbered cartridges set to :archive:

carueda@bufflehead:~/esp2$ esp
...
ESPhonu:001:0-> Cartridge.load! All.select{|x| x.odd?} => :archive

... every even numbered cartridge in simulation is processed as a Lyse-n-go, which take longer.

That's why we prefer the :archive type as set above.

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.)

Optional: Tweaks in LRAUV code to expedite the tests

vi Source/scienceModule/ESPClient.cpp to use, in method ESPClient::advanceInteraction():

issueCommand( "Cmd.startProcessing 10", processResultTimeout_, processCompleteTimeout_ );

instead of

issueCommand( "Cmd.startProcessing", processResultTimeout_, processCompleteTimeout_ );

Re-build LRAUV if any changes done above: make

Running the mission:

On tethyssim

Make sure SimDaemon is running; if not:

[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.Depth 1 centimeter;set sample.WaitBeforeSample 3 second;set sample:SampleAtDepth.TargetDepth 1 centimeter;run"

Wait until [ESPComponent](IMPORTANT): Waiting for ESP to connect shows up on the output:

...
2019-04-30T23:06:20.192Z,1556665580.192 [MissionManager](IMPORTANT): Started mission sample
2019-04-30T23:06:20.992Z,1556665580.992 [sample:SampleAtDepth:ApproachDepth:A](INFO): Moving to 0.010000 m
2019-04-30T23:08:30.611Z,1556665710.611 [sample:SampleAtDepth:ApproachDepth](INFO): Completed sample:SampleAtDepth:ApproachDepth
2019-04-30T23:08:31.011Z,1556665711.011 [sample:SampleAtDepth:SampleWrapper:B](IMPORTANT): At 0.011770 m , settling for 0.050000 min
2019-04-30T23:08:34.612Z,1556665714.612 [sample:SampleAtDepth:SampleWrapper:C.Wait](INFO): Done Waiting.
2019-04-30T23:08:36.612Z,1556665716.612 [ESPComponent](IMPORTANT): Setting regex for ESP Log summary: 'Selecting Cartridge|Sampled|Error|Fail|Retry|Cmd::|Sampler::'
2019-04-30T23:08:36.612Z,1556665716.612 [ESPComponent](INFO): compiled regex: "Selecting Cartridge|Sampled|Error|Fail|Retry|Cmd::|Sampler::"
2019-04-30T23:08:37.012Z,1556665717.012 [ESPComponent](IMPORTANT): powerUpESP IGNORED because manualEsp_
2019-04-30T23:08:37.012Z,1556665717.012 [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.