# hold.mi # # A mission that is suppose to hang around the same spot on the # earth and wait for someone to pick it up. # # There's an inner watch circle where it's suppose to surface in. # There's an outer watch circle where it starts diving when it # gets there. # # # 25-Aug-00 tc@DinkumSoftware.com Initial # 15-Aug-01 tc@DinkumSoftware.com Removed wrt_logs_to_disk # removed battery voltage patch # removed setting working depth # 03-Jan-02 tc@DinkumSoftware.com Made it surface every 20 minutes # if haven't had comms. Removed # the overtime abort # 09-Jan-02 tc@DinkumSoftware.com Made it resistant to bad altimeter hits # causing yo to cycle # 10-Jan-02 tc@DinkumSoftware.com Removed yo barg initial/final_inflections # 06-May-02 tc@DinkumSoftware.com Changed prepare_to_dive # b_arg wait_time to 12 minutes # 26-Aug-02 tc@DinkumSoftware.com bug fix, yo started too soon # 23-Oct-02 tc@DinkumSoftware.com thermal development: removed b_arg: d_thr_reqd_vol # 28-Oct-02 tc@DinkumSoftware.com thermal development: b_arg: max_charge_time -> max_pumping_charge_time # 04-Mar-03 tc@DinkumSoftware.com Removed default b_args # 07-Sep-04 tc@DinkumSoftware.com lowered abort no heap threshold from default to 100K # allows lastgasp.mi to run after regular mission # aborts with no heap # 04-Aug-05 pfurey@DinkumSoftware.com Removed the reqd_spare_heap argument to # to the abend behavior. # 10-Apr-06 fnj@DinkumSoftware.com Put reqd_spare_heap back in: made it 30000 less # than the masterdata value in order that lastgasp.mi # will not be likely to run out of heap if a mission # does run out and sequences to lastgasp.mi (which is # a copy of this file). # 27-Oct-06 pfurey@DinkumSoftware.com Reduced the reqd_spare_heap(bytes) from # 15000 to 10000. # Holds at location where mission started # inner watch circle: 10m # outer watch circle: 100m # surface with no comms time: 20 minutes # 3m to 20m(3m) behavior: abend # MS_ABORT_OVERTIME # Probably don't want this on in production b_arg: overtime(s) 1800 # < 0 disables b_arg: reqd_spare_heap(bytes) 10000. # MS_ABORT_NO_HEAP if M_SPARE_HEAP is less than this # <0 disables check ##################################################### # NOTE - KEEP THIS VALUE LESS THAN THAT IN MASTERDATA # AND IN "REGULAR" MISSIONS ##################################################### # USE THRUSTER DURING ABORT # b_arg: use_thruster_for_ascent(bool) 1 # Come up when hit the middle of the circle # and drift until we hit the outer circle behavior: surface b_arg: start_when(enum) 8 # 0-immediately, 1-stack idle 2-depth idle 3-heading idle, 6-when_secs # 7-when_wpt_dist 8-when hit waypoint 9-start_every # INNER WATCH CIRCLE b_arg: when_wpt_dist(m) 10 # how close to waypoint before surface, only if start_when==7 b_arg: end_action(enum) 3 # 0-quit, 1 wait for ^C quit/resume, 2 resume, 3 drift til "when_wpt_dist" b_arg: gps_wait_time(s) 600 # how long to wait for gps b_arg: keystroke_wait_time(s) 120 # how long to wait for control-C # This is the OUTER WATCH CIRCLE b_arg: end_wpt_dist(m) 100.0 # end_action == 3 ==> stop when m_dist_to_wpt > this arg # This causes us to surface if haven't had comms in a while # 20 minutes behavior: surface b_arg: start_when(enum) 12 # See doco below b_arg: when_secs(sec) 1200.0 # How long between surfacing, only if start_when==6,9, or 12 b_arg: end_action(enum) 1 # 0-quit, 1 wait for ^C quit/resume, 2 resume, 3 drift til "end_wpt_dist" b_arg: gps_wait_time(sec) 120 # how long to wait for gps b_arg: keystroke_wait_time(sec) 180 # how long to wait for control-C # Come up briefly if "yo" finishes # This happens if a bad altimeter hit causes a dive and climb to # complete in same cycle. We surface and hopefully yo restarts behavior: surface b_arg: start_when(enum) 2 # 0-immediately, 1-stack idle 2-pitch idle 3-heading idle # 6-when_secs, 7-when_wpt_dist b_arg: end_action(enum) 1 # 0-quit, 1 wait for ^C quit/resume, 2 resume b_arg: gps_wait_time(s) 300 # how long to wait for gps b_arg: keystroke_wait_time(s) 15 # how long to wait for control-C behavior: goto_wpt b_arg: start_when(enum) 1 # 0-immediately, 1-stack idle 2-depth idle b_arg: stop_when(enum) 7 # 1-stack idle 2-depth idle 5-never # 7-when_wpt_dist # This is the inner watch circle b_arg: when_wpt_dist(m) 10.0 # stop_when == 7 ==> stop when m_dist_to_wpt < this arg # This is center of both circles b_arg: wpt_units(enum) 0 # 0 LMC, 1 UTM, 2 LAT/LONG b_arg: wpt_x(X) 0 # The waypoint (east or lon) b_arg: wpt_y(X) 0 # (north or lat) # These only used for UTM waypoints b_arg: end_action(enum) 2 # 0-quit, 2 resume behavior: yo b_arg: start_when(enum) 4 # updwn_idle b_arg: num_half_cycles_to_do(nodim) -1 # Number of dive/climbs to perform # <0 is infinite, i.e. never finishes # arguments for dive_to b_arg: d_target_depth(m) 20 b_arg: d_target_altitude(m) 3 b_arg: d_use_pitch(enum) 3 b_arg: d_pitch_value(X) -.43 # arguments for climb_to b_arg: c_target_depth(m) 3 b_arg: c_target_altitude(m) -1 b_arg: c_use_pitch(enum) 3 b_arg: c_pitch_value(X) 0.43 b_arg: end_action(enum) 2 # 0-quit, 2 resume behavior: prepare_to_dive b_arg: start_when(enum) 0 # 0-immediately, 1-stack idle 2-depth idle b_arg: wait_time(s) 720 # 12 minutes, how long to wait for gps behavior: sensors_in # <0 off, 0 as fast as possible, N, sample every N secs