diff --git a/dfo_rosie713/missions/GOTO_L10.MA b/dfo_rosie713/missions/GOTO_L10.MA new file mode 100644 index 0000000..afb5788 --- /dev/null +++ b/dfo_rosie713/missions/GOTO_L10.MA @@ -0,0 +1,22 @@ +behavior_name=goto_list +# Written by gen-goto-list-ma ver 1.0 on GMT:Tue Feb 19 18:56:54 2002 +# 2019-08-12 JMK + +# goto_l10.ma +# Flies the box in ashumet +# Each leg about 200m + +# this file P16nw-P16ne-P16 (should start on last waypoint --P16-- because we are still near P14) + + +b_arg: num_legs_to_run(nodim) -1 # loop +b_arg: start_when(enum) 0 # BAW_IMMEDIATELY +b_arg: list_stop_when(enum) 7 # BAW_WHEN_WPT_DIST +b_arg: initial_wpt(enum) -2 # closest +b_arg: num_waypoints(nodim) 4 + + +-13442.0000 4917.5500 +-13438.0000 4917.5500 +-13440.0000 4917.0000 + diff --git a/dfo_rosie713/missions/SAMPLE10.MA b/dfo_rosie713/missions/SAMPLE10.MA new file mode 100644 index 0000000..82cd7f1 --- /dev/null +++ b/dfo_rosie713/missions/SAMPLE10.MA @@ -0,0 +1,131 @@ +behavior_name=sample +# sample all science sensors on down cast only +# 10-July-2010 ballsup@webbresearch.com handwritten for stock.mi + + + b_arg: sensor_type(enum) 0 # ALL 0 C_SCIENCE_ALL_ON + # PROFILE 1 C_PROFILE_ON + # HS2 2 C_HS2_ON !!DELETED!! + # BB2F 3 C_BB2F_ON + # BB2C 4 C_BB2C_ON + # BB2LSS 5 C_BB2LSS_ON + # SAM 6 C_SAM_ON + # WHPAR 7 C_WHPAR_ON !!DELETED!! + # WHGPBM 8 C_WHGPBM_ON !!DELETED!! + # MOTEOPD 9 C_MOTEOPD_ON + # BBFL2S 10 C_BBFL2S_ON + # FL3SLO 11 C_FL3SLO_ON + # BB3SLO 12 C_BB3SLO_ON + # OXY3835 13 C_OXY3835_ON + # WHFCTD 14 C_WHFCTD_ON + # BAM 15 C_BAM_ON + # OCR504R 16 C_OCR504R_ON + # OCR504I 17 C_OCR504I_ON + # BADD 18 C_BADD_ON + # FLNTU 19 C_FLNTU_ON + # FL3SLOV2 20 C_FL3SLOV2_ON + # BB3SLOV2 21 C_BB3SLOV2_ON + # OCR507R 22 C_OCR507R_ON + # OCR507I 23 C_OCR507I_ON + # BB3SLOV3 24 C_BB3SLOV3_ON + # BB2FLS 25 C_BB2FLS_ON + # BB2FLSV2 26 C_BB2FLSV2_ON + # OXY3835_WPHASE 27 C_OXY3835_WPHASE_ON + # AUVB 28 C_AUVB_ON + # BB2FV2 29 C_BB2FV2_ON + # TARR 30 C_TARR_ON + # BBFL2SV2 31 C_BBFL2SV2_ON + # GLBPS 32 C_GLBPS_ON + # SSCSD 33 C_SSCSD_ON + # BB2FLSV3 34 C_BB2FLSV3_ON + # FIRE 35 C_FIRE_ON + # OHF 36 C_OHF_ON !!DELETED!! + # BB2FLSV4 37 C_BB2FLSV4_ON + # BB2FLSV5 38 C_BB2FLSV5_ON + # LOGGER 39 C_LOGGER_ON + # BBAM 40 C_BBAM_ON + # UMODEM 41 C_UMODEM_ON + # RINKOII 42 C_RINKOII_ON + # DVL 43 C_DVL_ON + # BB2FLSV6 44 C_BB2FLSV6_ON + # FLBBRH 45 C_FLBBRH_ON + # FLUR 46 C_FLUR_ON + # BB2FLSV7 47 C_BB2FLSV7_ON + # FLBBCD 48 C_FLBBCD_ON + # DMON 49 C_DMON_ON + # C3SFL 50 C_C3SFL_ON + # SUNA 51 C_SUNA_ON + # SATPAR 52 C_SATPAR_ON + # VSF 53 C_VSF_ON + # OXY4 54 C_OXY4_ON + # GAMMA_RAD5 55 C_GAMMA_RAD5_ON !!DELETED!! + # BSIPAR 56 C_BSIPAR_ON + # FLBB 57 C_FLBB_ON + # VR2C 58 C_VR2C_ON + # CTD41CP2 59 C_CTD41CP2_ON + # ECHOSNDR853 60 C_ECHOSNDR853_ON + # FLRH 61 C_FLRH_ON + # BB2FLSV8 62 C_BB2FLSV8_ON + # UVILUXPAH 63 C_UVILUXPAH_ON + # AD2CP 64 C_AD2CP_ON + # MINIPROCO2 65 C_MINIPROCO2_ON + # PCO2 66 C_PCO2_ON + # SEAOWL 67 C_SEAOWL_ON + # AZFP 68 C_AZFP_ON + # UBAT 69 C_UBAT_ON + # LISST 70 C_LISST_ON + # LMS 71 C_LMS_ON + # SVS603 72 C_SVS603_ON + # MICRORIDER 73 C_MICRORIDER_ON + # BB2FLSV9 74 C_BB2FLSV9_ON + # SBE41N_PH 75 C_SBE41N_PH_ON + # FL2URRH 76 C_FL2URRH_ON + # FLBBBBV1 77 C_FLBBBBV1_ON + # FLBBBBV2 78 C_FLBBBBV2_ON + # OBSVR 79 C_OBSVR_ON + + # This is a bit-field, combine: + # 8 on_surface, 4 climbing, 2 hovering, 1 diving + b_arg: state_to_sample(enum) 1 # 0 none + # 1 diving + # 2 hovering + # 3 diving|hovering + # 4 climbing + # 5 diving|climbing + # 6 hovering|climbing + # 7 diving|hovering|climbing + # 8 on_surface + # 9 diving|on_surface + # 10 hovering|on_surface + # 11 diving|hovering|on_surface + # 12 climbing|on_surface + # 13 diving|climbing|on_surface + # 14 hovering|climbing|on_surface + # 15 diving|hovering|climbing|on_surface + + + b_arg: intersample_time(s) 0 # if < 0 then off, if = 0 then + # as fast as possible, and if + # > 0 then that many seconds + # between measurements + + b_arg: nth_yo_to_sample(nodim) 1 # After the first yo, sample only + # on every nth yo. If argument is + # negative then exclude first yo. + + b_arg: intersample_depth(m) -1 # supersedes intersample_time + # by dynamically estimating + # and setting intersample_time + # to sample at the specified + # depth interval. If <=0 then + # then sample uses + # intersample_time, if > 0 then + # that many meters between + # measurements + + b_arg: min_depth(m) -5 # minimum depth to collect data, default + # is negative to leave on at surface in + # spite of noise in depth reading + b_arg: max_depth(m) 2000 # maximum depth to collect data + + \ No newline at end of file diff --git a/dfo_rosie713/missions/SURFAC01.MA b/dfo_rosie713/missions/SURFAC01.MA new file mode 100644 index 0000000..b3c3080 --- /dev/null +++ b/dfo_rosie713/missions/SURFAC01.MA @@ -0,0 +1,13 @@ +behavior_name=surface +# Written by SFMC on UTC: 2019-03-14T18:20:53.385 +# surfac01.ma + + + b_arg: start_when(enum) 8 # BAW_WHEN_HIT_WAYPOINT + b_arg: end_action(enum) 1 # Wait for Ctrl-C Quit/Resume + b_arg: gps_wait_time(sec) 300 # Wait 300 seconds for gps + b_arg: keystroke_wait_time(sec) 300 # Wait 300 seconds for control-C + b_arg: c_use_pitch(enum) 3 # 3:servo + b_arg: c_pitch_value(X) 0.4528 # 26 deg + b_arg: printout_cycle_time(sec) 60.0 # How often to print dialog + diff --git a/dfo_rosie713/missions/SURFAC02.MA b/dfo_rosie713/missions/SURFAC02.MA new file mode 100644 index 0000000..4a23654 --- /dev/null +++ b/dfo_rosie713/missions/SURFAC02.MA @@ -0,0 +1,24 @@ +behavior_name=surface +# climb to surface with ballast pump full out +# pitch servo'ed to 26 degrees +# Hand Written +# 10 July 2010 ballsup@webbresearch.com based on legacy surfac10.ma + +# Come up when mission done +# This is determined by no one steering in x-y plane (no waypoints) + + + + b_arg: start_when(enum) 3 # 0-immediately, 1-stack idle 2-pitch idle 3-heading idle + b_arg: end_action(enum) 0 # 0-quit, 1 wait for ^C quit/resume, 2 resume, 3 drift til "end_wpt_dist" + b_arg: gps_wait_time(s) 300 # how long to wait for gps + b_arg: keystroke_wait_time(sec) 180 # how long to wait for control-C + b_arg: when_wpt_dist(m) 10 # how close to waypoint before surface, only if start_when==7 + b_arg: c_use_pitch(enum) 3 # 3:servo + b_arg: c_pitch_value(X) 0.4538 # 26 deg + + + + + + \ No newline at end of file diff --git a/dfo_rosie713/missions/SURFAC03.MA b/dfo_rosie713/missions/SURFAC03.MA new file mode 100644 index 0000000..061a7eb --- /dev/null +++ b/dfo_rosie713/missions/SURFAC03.MA @@ -0,0 +1,26 @@ +behavior_name=surface +# climb to surface with ballast pump full out +# pitch servo'ed to 26 degrees +# Hand Written +# 10 July 2010 ballsup@webbresearch.com based on legacy surfac10.ma +# 08 June 2012 ballsup@webbresearch.com increased surface time to "normal" + +# Come up briefly if "yo" finishes +# This happens if a bad altimeter hit causes a dive and climb to +# complete in same cycle, or surfacing for num_half_cycles_to_do + + + + b_arg: start_when(enum) 2 # 0-immediately, 1-stack idle 2-pitch idle 3-heading idle + 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(s) 300 # how long to wait for gps + b_arg: keystroke_wait_time(sec) 300 # how long to wait for control-C + b_arg: when_wpt_dist(m) 10 # how close to waypoint before surface, only if start_when==7 + b_arg: c_use_pitch(enum) 3 # 3:servo + b_arg: c_pitch_value(X) 0.4538 # 26 deg + + + + + + diff --git a/dfo_rosie713/missions/SURFAC04.MA b/dfo_rosie713/missions/SURFAC04.MA new file mode 100644 index 0000000..e94334e --- /dev/null +++ b/dfo_rosie713/missions/SURFAC04.MA @@ -0,0 +1,24 @@ +behavior_name=surface +# climb to surface with ballast pump full out +# pitch servo'ed to 26 degrees +# Hand Written +# 10 July 2010 ballsup@webbresearch.com based on legacy surfac10.ma + +# Come up every way point + + + + b_arg: start_when(enum) 8 # 8-when hit waypoint + 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(s) 300 # how long to wait for gps + b_arg: keystroke_wait_time(sec) 300 # how long to wait for control-C + b_arg: when_wpt_dist(m) 10 # how close to waypoint before surface, only if start_when==7 + b_arg: c_use_pitch(enum) 3 # 3:servo + b_arg: c_pitch_value(X) 0.4538 # 26 deg + b_arg: printout_cycle_time(sec) 60.0 # How often to print dialog + + + + + + diff --git a/dfo_rosie713/missions/SURFAC05.MA b/dfo_rosie713/missions/SURFAC05.MA new file mode 100644 index 0000000..1725e4c Binary files /dev/null and b/dfo_rosie713/missions/SURFAC05.MA differ diff --git a/dfo_rosie713/missions/SURFAC06.MA b/dfo_rosie713/missions/SURFAC06.MA new file mode 100644 index 0000000..95f392b --- /dev/null +++ b/dfo_rosie713/missions/SURFAC06.MA @@ -0,0 +1,24 @@ +behavior_name=surface +# climb to surface with ballast pump full out +# pitch servo'ed to 26 degrees +# Hand Written +# 10 July 2010 ballsup@webbresearch.com based on legacy surfac10.ma + +# Come up every three hours + + + + b_arg: start_when(enum) 9 # 9-every when_secs + b_arg: end_action(enum) 1 # 0-quit, 1 wait for ^C quit/resume, 2 resume, 3 drift til "end_wpt_dist" + + b_arg: when_secs(s) 10800 # How long between surfacing, only if start_when==6 or 9 + + + b_arg: gps_wait_time(s) 300 # how long to wait for gps + b_arg: keystroke_wait_time(sec) 300 # how long to wait for control-C + b_arg: when_wpt_dist(m) 10 # how close to waypoint before surface, only if start_when==7 + b_arg: c_use_pitch(enum) 3 # 3:servo + b_arg: c_pitch_value(X) 0.4538 # 26 deg + b_arg: printout_cycle_time(sec) 60.0 # How often to print dialog + + diff --git a/dfo_rosie713/missions/YO10.MA b/dfo_rosie713/missions/YO10.MA new file mode 100644 index 0000000..d32b776 --- /dev/null +++ b/dfo_rosie713/missions/YO10.MA @@ -0,0 +1,54 @@ +behavior_name=yo +# yo10.ma +# climb 3m dive 12m alt 9m pitch 26 deg +# Hand Written +# 18-Feb-02 tc@DinkumSoftware.com Initial +# 13-Mar-02 tc@DinkumSoftware.com Bug fix, end_action from quit(0) to resume(2) +# 09-Apr-03 kniewiad@webbresearch.com Adjusted for Ashumet + + + b_arg: start_when(enum) 2 # pitch idle (see doco below) + 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) 12 + b_arg: d_target_altitude(m) 3 + + b_arg: d_use_pitch(enum) 3 # 1:battpos 2:setonce 3:servo + # in rad rad, <0 dive + b_arg: d_pitch_value(X) -0.4538 # -26 deg + + # 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 # 1:battpos 2:setonce 3:servo + # in rad rad, >0 climb + b_arg: c_pitch_value(X) 0.4538 # 26 deg + + + b_arg: end_action(enum) 2 # 0-quit, 2 resume + + + +# NOTE: These are symbolically defined beh_args.h +# b_arg: START_WHEN When the behavior should start, i.e. go from UNITIALIZED to ACTIVE +# BAW_IMMEDIATELY 0 // immediately +# BAW_STK_IDLE 1 // When stack is idle (nothing is being commanded) +# BAW_PITCH_IDLE 2 // When pitch is idle(nothing is being commanded) +# BAW_HEADING_IDLE 3 // When heading is idle(nothing is being commanded) +# BAW_UPDWN_IDLE 4 // When bpump/threng is idle(nothing is being commanded) +# BAW_NEVER 5 // Never stop +# BAW_WHEN_SECS 6 // After behavior arg "when_secs", from prior END if cycling +# BAW_WHEN_WPT_DIST 7 // When sensor(m_dist_to_wpt) < behavior arg "when_wpt_dist" +# BAW_WHEN_HIT_WAYPOINT 8 // When X_HIT_A_WAYPOINT is set by goto_wpt behavior +# BAW_EVERY_SECS 9 // After behavior arg "when_secs", from prior START if cycling +# BAW_EVERY_SECS_UPDWN_IDLE 10 // After behavior arg "when_secs", from prior START AND +# // updown is idle, no one commanding vertical motion +# BAW_SCI_SURFACE 11 // SCI_WANTS_SURFACE is non-zero +# BAW_NOCOMM_SECS 12 // when have not had comms for WHEN_SECS secs +# +# b_arg: STOP_WHEN +# 0 complete +# 1-N same as "start_when" diff --git a/dfo_rosie713/missions/YO14.MA b/dfo_rosie713/missions/YO14.MA new file mode 100644 index 0000000..34de428 Binary files /dev/null and b/dfo_rosie713/missions/YO14.MA differ diff --git a/dfo_rosie713/missions/stock.mi b/dfo_rosie713/missions/stock.mi new file mode 100644 index 0000000..ec6f84b --- /dev/null +++ b/dfo_rosie713/missions/stock.mi @@ -0,0 +1,124 @@ +# stock.mi +# +# Retrieves waypoints from mafiles/goto_l10.ma +# Retrieves yo envelope from mafiles/yo10.ma +# For Autoballast/speed control, use yo14.ma +# Retrieves climb to surface controls from mafiles/surfac01 through 06.ma +# Surfaces: +# if haven't had comms as controlled by surfac01.ma +# mission done (finished all the waypoints) surfac02.ma +# Bad altimeter or half yo's finish surfac03.ma +# Every waypoint surfac04.ma +# If requested by science surfac05.ma +# Every x minutes surfac06.ma +# All science sensors sample on only downcast from sample10.ma +# +# 10-July-2010 ballsup@webbresearch.com Initial (based on glmpc.mi) +# 30-Nov-2010 ballsup@webbresearch.com changed abort for cop tickle 13.5 hours and disabled percentage method +# +################################################################################ +sensor: c_science_all_on_enabled(bool) 1 # in, non-zero enables c_science_all_on + # disable this sensor to allow for individually + # sampled science sensors ie sample11.ma and greater + +sensor: u_use_ctd_depth_for_flying(bool) 0 # true=> use ctd measurement for m_depth + # implemented as emergency workaround for + # broken ocean pressure + +sensor: u_use_current_correction(nodim) 1 # 0 calculate, but do not use m_water_vx/y + # 1 use m_water_vx/y to navigate AND steer + + +################################################################################ + +behavior: abend + b_arg: overdepth_sample_time(s) 20.0 # how often to check + # MS_ABORT_OVERTIME + b_arg: overtime(s) -1.0 # < 0 disables + # MS_ABORT_WPT_TOOFAR + b_arg: max_wpt_distance(m) -1 # Maximum allowable distance to a waypoint + b_arg: samedepth_for_sample_time(s) 30.0 # how often to check + b_arg: undervolts(volts) 10.0 # < 0 disables Decrease to 9 + # for Lithium primary batteries + + b_arg: no_cop_tickle_for(sec) 48600.0 # secs, abort mission if watchdog + # not tickled this often, <0 disables + b_arg: no_cop_tickle_percent(%) -1 # 0-100, <0 disables + +################################################################################ + +# Come up if haven't had comms for a while +behavior: surface + b_arg: args_from_file(enum) 01 # read from mafiles/surfac01.ma + +################################################################################ + + # Come up when mission done + # This is determined by no one steering in x-y plane (no waypoints) +behavior: surface + b_arg: args_from_file(enum) 02 # read from mafiles/surfac02.ma + +################################################################################ + + # 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 + # or change keystroke_wait_time if surfacing for num_half_cycles_to_do +behavior: surface + b_arg: args_from_file(enum) 03 # read from mafiles/surfac03.ma + +################################################################################ + + # Come up every way point +behavior: surface + b_arg: args_from_file(enum) 04 # read from mafiles/surfac04.ma + +################################################################################ + + # Come up when requested by science +behavior: surface + b_arg: args_from_file(enum) 05 # read from mafiles/surfac05.ma + + +################################################################################ + + # Come up every x minutes +behavior: surface + b_arg: args_from_file(enum) 06 # read from mafiles/surfac06.ma + + +################################################################################ + +behavior: goto_list + b_arg: args_from_file(enum) 10 # read from mafiles/goto_l10.ma + b_arg: start_when(enum) 0 # 0-immediately, 1-stack idle 2-heading idle + +################################################################################ + +behavior: yo + b_arg: args_from_file(enum) 10 # read from mafiles/yo10.ma + b_arg: start_when(enum) 2 # 0-immediately, 1-stack idle 2-depth idle + b_arg: end_action(enum) 2 # 0-quit, 2 resume + +################################################################################ + + # Sample all science sensors only on downcast +behavior: sample +b_arg: args_from_file(enum) 10 # >= 0 enables reading from mafiles/sample10.ma + +################################################################################ + + # Sample ctd only on downcast + # sensor c_science_all_on_enabled must be set to 0 to uncouple science sensor union +#behavior: sample +#b_arg: args_from_file(enum) 11 # >= 0 enables reading from mafiles/sample11.ma + +################################################################################ + +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 # Turn most input sensors off