%function [bnotes,bnames] = behaviorNotes(behaviorsOnly)
function [bnotes,bnames] = behaviorNotes(behaviorsOnly)

if ~nargin, behaviorsOnly = 0; end
if ~behaviorsOnly,

% Relative Waypoint
waypointrel.name = 'waypointrel';
waypointrel.range = 'Range to next waypoint';
waypointrel.azimuth = 'Heading to next waypoint';

% Compass Star
compassstar.name = 'compassstar';
compassstar.missionname = 'Name of this mission';
compassstar.startlat = 'Starting latitude of survey';
compassstar.startlon = 'Starting longitude of survey';
compassstar.tracklength = 'Length of survey legs';
compassstar.azimuth = 'Heading of survey legs';
compassstar.depth = 3; 'Depth of survey';
compassstar.rpm = 300; 'RPM of survey';
compassstar.gpsfixesperleg = 'Negative values skip legs between fixes';
compassstar.numlegs = 'Number of survey legs';
compassstar.transittime = 'Time to transit to first waypoint';

% Compass Circle
compasscircle.name = 'compasscircle';
compasscircle.missionname = 'Name of this mission';
compasscircle.startlat = 'Starting latitude of survey';
compasscircle.startlon = 'Starting longitude of survey';
compasscircle.tracklength = 'Length of survey legs';
compasscircle.azimuth = 'Heading of survey legs';
compasscircle.depth = 3; 'Depth of survey';
compasscircle.rpm = 300; 'RPM of survey';
compasscircle.gpsfixesperleg = 'Negative values skip legs between fixes';
compasscircle.numlegs = 'Number of survey legs';
compasscircle.transittime = 'Time to transit to first waypoint';

% Survey Criss Cross
crisscross.name = 'crisscross';
crisscross.missionname = 'Name of this mission';
crisscross.lat0 = 'Latitude of first point in rectangle';
crisscross.lon0 = 'Longitude of first point in rectangle';
crisscross.lat1 = 'Latitude of second point in rectangle';
crisscross.lon1 = 'Longitude of second point in rectangle';
crisscross.lat2 = 'Latitude of third point in rectangle';
crisscross.lon2 = 'Longitude of third point in rectangle';
crisscross.sonarrange = 'Range of sonar operation during this mission';
crisscross.naverr = 'Navigation error as function of distance travelled';
crisscross.depth = 'Depth of survey';
crisscross.rpm = 'RPM of survey';
crisscross.gpsfixesperleg = 'Negative values skip legs between fixes';
crisscross.transitdistance = 'Distance to transit to first waypoint';

% Survey
survey.name = 'survey';
survey.missionname = 'Name of this mission';
survey.startlat = 'Starting latitude of survey';
survey.startlon = 'Starting longitude of survey';
survey.tracklead = 'Lead-in distance before each leg';
survey.tracklength = 'Length of survey legs';
survey.trackspacing1 = 'First spacing between survey legs';
survey.trackspacing2 = 'Second spacing between survey legs';
survey.azimuth = 'Heading of survey legs';
survey.depth = 3; 'Depth of survey';
survey.rpm = 300; 'RPM of survey';
survey.gpsfixesperleg = 'Negative values skip legs between fixes';
survey.numlegs = 'Number of survey legs';
survey.transittime = 'Time to transit to first waypoint';

% Survey Box
surveybox.name = 'surveybox';
surveybox.missionname = 'Name of this mission';
surveybox.northwestlat = 'Northwest latitude of survey box';
surveybox.northwestlon = 'Northwest longitude of survey box';
surveybox.southeastlat = 'Southeast latitude of survey box';
surveybox.southeastlon = 'Southeast longitude of survey box';
surveybox.tracklead = 'Lead-in distance before each leg';
surveybox.trackspacing1 = 'First spacing between survey legs';
surveybox.trackspacing2 = 'Second spacing between survey legs';
surveybox.depth = 3; 'Depth of survey';
surveybox.rpm = 300; 'RPM of survey';
surveybox.gpsfixesperleg = 'Negative values skip legs between fixes';
surveybox.transittime = 'Time to transit to first waypoint';

% Survey Area
surveyarea.name = 'surveyarea';
surveyarea.missionname = 'Name of this mission';
surveyarea.lat0 = 'Latitude of first point in rectangle';
surveyarea.lon0 = 'Longitude of first point in rectangle';
surveyarea.lat1 = 'Latitude of second point in rectangle';
surveyarea.lon1 = 'Longitude of second point in rectangle';
surveyarea.lat2 = 'Latitude of third point in rectangle';
surveyarea.lon2 = 'Longitude of third point in rectangle';
surveyarea.tracklead = 'Lead-in distance before each leg';
surveyarea.trackspacing1 = 'First spacing between survey legs';
surveyarea.trackspacing2 = 'Second spacing between survey legs';
surveyarea.depth = 3; 'Depth of survey';
surveyarea.rpm = 300; 'RPM of survey';
surveyarea.gpsfixesperleg = 'Negative values skip legs between fixes';
surveyarea.transittime = 'Time to transit to first waypoint';

% Survey Area EZ
surveyareaez.name = 'surveyareaez';
surveyareaez.missionname = 'Name of this mission';
surveyareaez.lat0 = 'Latitude of first point in rectangle';
surveyareaez.lon0 = 'Longitude of first point in rectangle';
surveyareaez.lat1 = 'Latitude of second point in rectangle';
surveyareaez.lon1 = 'Longitude of second point in rectangle';
surveyareaez.lat2 = 'Latitude of third point in rectangle';
surveyareaez.lon2 = 'Longitude of third point in rectangle';
surveyareaez.sonarrange = 'Range of sonar operation during this mission';
surveyareaez.naverr = 'Navigation error as function of distance travelled';
surveyareaez.depth = 'Depth of survey';
surveyareaez.rpm = 'RPM of survey';
surveyareaez.gpsfixesperleg = 'Negative values skip legs between fixes';
surveyareaez.transitdistance = 'Distance to transit to first waypoint';

% Survey Area Oneway
surveyareaoneway.name = 'surveyareaoneway';
surveyareaoneway.missionname = 'Name of this mission';
surveyareaoneway.lat0 = 'Latitude of first point in rectangle';
surveyareaoneway.lon0 = 'Longitude of first point in rectangle';
surveyareaoneway.lat1 = 'Latitude of second point in rectangle';
surveyareaoneway.lon1 = 'Longitude of second point in rectangle';
surveyareaoneway.lat2 = 'Latitude of third point in rectangle';
surveyareaoneway.lon2 = 'Longitude of third point in rectangle';
surveyareaoneway.tracklead = 'Lead-in distance before each leg';
surveyareaoneway.trackspacing1 = 'First spacing between survey legs';
surveyareaoneway.trackspacing2 = 'Second spacing between survey legs';
surveyareaoneway.depth = 'Depth of survey';
surveyareaoneway.rpm = 'RPM of survey';
surveyareaoneway.gpsfixesperleg = 'Negative values skip legs between fixes';
surveyareaoneway.transittime = 'Time to transit to first waypoint';

% Survey Area 4Leaf
surveyarea4leaf.name = 'surveyarea4leaf';
surveyarea4leaf.missionname = 'Name of this mission';
surveyarea4leaf.lat0 =  'Latitude of first point';
surveyarea4leaf.lon0 = 'Longitude of first point';
surveyarea4leaf.az = 'Azimuth of mission';
surveyarea4leaf.leglength = 'Leg length';
surveyarea4leaf.tracklead = 'Lead-in distance before each leg';
surveyarea4leaf.depth = 'Depth of survey';
surveyarea4leaf.rpm = 'RPM of survey';
surveyarea4leaf.transittime = 'Time to transit to first waypoint';

% Survey Area Raw
surveyarearaw.name = 'surveyarearaw';
surveyarearaw.missionname = 'Name of this mission';

% Q Route
qroute.name = 'qroute';
qroute.missionname = 'Name of this mission';
qroute.lat = 'List of latitude points';
qroute.lon = 'List of longitude points';
qroute.direction = 'Direction of track legs';
qroute.tracklead = 'Lead-in distance before each leg';
qroute.width = 'Width of Q Route';
qroute.trackspacing1 = 'First spacing between survey legs';
qroute.trackspacing2 = 'Second spacing between survey legs';
qroute.depth = 'Depth of survey';
qroute.rpm = 'RPM of survey';
qroute.gpsfixesperleg = 'Negative values skip legs between fixes';
qroute.transittime = 'Time to transit to first waypoint';

% Q Route Relative
qrouterelative.name = 'qrouterelative';
qrouterelative.missionname = 'Name of this mission';
qrouterelative.initiallat = 'Reference latitude';
qrouterelative.initiallong = 'Reference longitude';
qrouterelative.offsetfromstart = 'Offset from reference point';
qrouterelative.length = 'Length of qroute';
qrouterelative.azimuth = 'Azimuth of qroute';
qrouterelative.direction = 'Direction of track legs';
qrouterelative.tracklead = 'Lead-in distance before each leg';
qrouterelative.width = 'Width of Q Route';
qrouterelative.trackspacing1 = 'First spacing between survey legs';
qrouterelative.trackspacing2 = 'Second spacing between survey legs';
qrouterelative.depth = 'Depth of survey';
qrouterelative.rpm = 'RPM of survey';
qrouterelative.gpsfixesperleg = 'Negative values skip legs between fixes';
qrouterelative.transittime = 'Time to transit to first waypoint';

% Worksite
worksite.name = 'worksite';
worksite.latitude = 'Starting latitude of mission';
worksite.longitude = 'Starting longitude of mission';
worksite.magneticvariation = 'Magnetic variation';
worksite.utmzone = 'Universal Transverse Mercator zone.';

end %if ~behaviorsOnly

%Ascend
ascend.name = 'ascend';
ascend.comment = 'Printed out whenever behavior changes state (start, end)';
ascend.duration = 'End behavior after this interval';
ascend.pitch = 'Commanded pitch';
ascend.enddepth = 'End behavior when shallower than this';
ascend.dropdescentweight = 'Drop descent weight';
ascend.dropascentweight = 'Drop ascent weight';
ascend.speedblock = 'Click Add Block to add';
ascend.horizontalblock = 'Click Add Block to add';
ascend.debug = 'Debug printing: 0 is off; 5 is high';

%AvoidObstacles
avoidobstacles.name = 'avoidobstacles';
avoidobstacles.comment = 'Printed out whenever behavior changes state (start, end)';
avoidobstacles.abortrange = 'A range reading less than this will abort the mission';
avoidobstacles.minrange = 'A range reading less than this will activate spiralling behaviour';
avoidobstacles.avoidmode = 'Sensitivity level (Off, Low, High, NoPlane)';
avoidobstacles.defrangeact = 'In NoPlane mode, a range reading less than this will cause avoid behaviour';
avoidobstacles.mydebug = 'Debug printing: 0 is off; 5 is high';

%Chirpfin
chirpfin.name = 'chirpfin';
chirpfin.comment = 'Printed out whenever behavior changes state (start, end)';
chirpfin.duration = 'End behavior after this interval';
chirpfin.amplitude = 'Amplitude of sine wave';
chirpfin.initialfreq = 'Initial sine wave frequency';
chirpfin.finalfreq = 'Final sine wave frequency';
chirpfin.plane = 'Either "horizontal" or "vertical"';
chirpfin.debug = 'Debug printing: 0 is off; 5 is high';

%CompassCal
compasscal.name = 'compasscal';
compasscal.comment = 'Printed out whenever behavior changes state (start, end)';
compasscal.crossbow = 'Calibrate the crossbow';
compasscal.leica = 'Calibrate the leica';
compasscal.start = 'True to enable calibration';
compasscal.stop = 'True to disable calibration';
compasscal.debug = 'Debug printing: 0 is off; 5 is high';

%ControlModem
controlmodem.name = 'controlmodem';
controlmodem.comment = 'Printed out whenever behavior changes state (start, end)';
controlmodem.allowcoms = 'Allow acoustic modem coms';
controlmodem.mydebug = '0';

%ControlPower
controlpower.name = 'controlpower';
controlpower.comment = 'Printed out whenever behavior changes state (start, end)';
controlpower.circuit0 = 'Switch off circuit (True = off)';
controlpower.circuit1 = 'Switch off circuit (True = off)';
controlpower.circuit2 = 'Switch off circuit (True = off)';
controlpower.circuit3 = 'Switch off circuit (True = off)';
controlpower.circuit4 = 'Switch off circuit (True = off)';
controlpower.circuit5 = 'Switch off circuit (True = off)';
controlpower.circuit6 = 'Switch off circuit (True = off)';
controlpower.circuit7 = 'Switch off circuit (True = off)';
controlpower.circuit8 = 'Switch off circuit (True = off)';
controlpower.circuit9 = 'Switch off circuit (True = off)';
controlpower.circuit10 = 'Switch off circuit (True = off)';
controlpower.circuit11 = 'Switch off circuit (True = off)';
controlpower.circuit12 = 'Switch off circuit (True = off)';
controlpower.circuit13 = 'Switch off circuit (True = off)';
controlpower.circuit14 = 'Switch off circuit (True = off)';
controlpower.circuit15 = 'Switch off circuit (True = off)';
controlpower.circuit16 = 'Switch off circuit (True = off)';

%ControlSonar
controlsonar.name = 'controlsonar';
controlsonar.comment = 'Printed out whenever behavior changes state (start, end)';
controlsonar.setmode = 'Set the sonar transducer power mode';
controlsonar.logging = 'Turn data logging on and off';
controlsonar.setrange = 'Valid ranges are: 50, 75, 100, 150';
controlsonar.setresolution = 'Valid resolutions are: 0 (Normal), 1 (High)';
controlsonar.snapshot = 'Take a snapshot of specified size';
controlsonar.debug = 'Debug printing: 0 is off; 5 is high';

%ControlSonarEdgeTech
controlsonaredgetech.name = 'controlsonaredgetech';
controlsonaredgetech.comment = 'Printed out whenever behavior changes state (start, end)';
controlsonaredgetech.sonarsystempoweron  = 'Turns on the power to the EdgeTech Sonar System';
controlsonaredgetech.sonarsystempoweroff = 'Turns off the power to the EdgeTech Sonar System';
controlsonaredgetech.sonarsystemreboot   = 'Reboots the sonar operating system, reconnects sockets';
controlsonaredgetech.sonarsystemshutdown = 'Shuts down the sonar operating system, stops logging';
controlsonaredgetech.setmodesbp = 'Turn on/off the sub bottom profiler transducer';
controlsonaredgetech.setmodessl = 'Turn on/off the low resolution transducer';
controlsonaredgetech.setmodessh = 'Turn on/off the high resolution transducer';
controlsonaredgetech.logging = 'Turn data logging on and off';
controlsonaredgetech.sbppingrate = 'Usually 4 Hz';
controlsonaredgetech.sslpingrate = 'Usually use range instead';
controlsonaredgetech.sshpingrate = 'Usually use range instead';
controlsonaredgetech.sslpingrange = '';
controlsonaredgetech.sshpingrange = '';
controlsonaredgetech.debug = 'Debug printing: 0 is off; 5 is high';


%DepthEnvelope
depthenvelope.name = 'depthenvelope';
depthenvelope.comment = 'Printed out whenever behavior changes state (start, end)';
depthenvelope.mindepth = 'Minimum depth';
depthenvelope.maxdepth = 'Maximum depth';
depthenvelope.minaltitude = 'Minimum altitude';
depthenvelope.abortdepth = 'Abort when below this depth';
depthenvelope.abortaltitude = 'Abort when below this altitude';
depthenvelope.debug = 'Debug printing: 0 is off; 5 is high';

%Descend
descend.name = 'descend';
descend.comment = 'Printed out whenever behavior changes state (start, end)';
descend.duration = 'End behavior after this interval';
descend.pitch = 'Commanded pitch';
descend.maxdepth = 'End behavior when below this depth';
descend.minaltitude = 'End behavior when below this altitude';
descend.dropdescentweight = 'Drop descent weight at finish';
descend.dropascentweight = 'Drop ascent weight at finish';
descend.speedblock = 'Click Add Block to add';
descend.horizontalblock = 'Click Add Block to add';
descend.debug = 'Debug printing: 0 is off; 5 is high';

%GetGps
getgps.name = 'getgps';
getgps.comment = 'Printed out whenever behavior changes state (start, end)';
getgps.duration = 'End behavior after this interval';
getgps.abortontimeout = ['Should mission abort if insufficient ' ...
	'# hits at end of behavior?'];
getgps.minhits = 'Minimum number of good GPS hits to collect';
getgps.minsats = 'Minimum number of acceptable satellites';
getgps.maxhitvelocity = 'Maximum hit velocity to accept';
getgps.maxhitspacing = 'Maximum allowable time between hits';
getgps.debug = 'Debug printing: 0 is off; 5 is high';

%Homing
homing.name = 'homing';
homing.comment = 'Printed out whenever behavior changes state (start, end)';
homing.duration = 'End behavior after this interval';
homing.headinggain = 'Heading gain applied to azimuth correction';
homing.releasedepth = 'Depth above which float release is enabled';
homing.releasedepthchange = 'Change in depth that indicates float has been released';
homing.releasetime = 'Maximum time to wait for float to release';
homing.latchedrangerate = 'Vehicle range rate (absolute value) must be less than this to be considered latched';
homing.missedrangerate = 'The range rate that determines a missed approach';
homing.closingrangerate = 'The range rate that determines if the vehicle is closing in on the beacon';
homing.azimutherror = 'Fixed measurement error in azimuth angle';
homing.headingrate = 'Heading change rate for searching';
homing.pingperiod = 'Homing beacon ping period';
homing.startdelaytime = 'Initial start-up time for behavior before beginning to home';
homing.listentime = 'Time for vehicle to sit still and listen before searching';
homing.tolerancetime = 'Tolerance time for maintaining heading without new data';
homing.runouttime = 'Run out (realignment) time after missed approach';
homing.realigntime = 'Time to realign after missing an approach and running out';
homing.searchtime = 'Search time to keep constant heading before circling';
homing.terminationtime = 'Time required for vehicle to remain latched before terminating';
homing.speedblock = 'Click Add Block to add';
homing.horizontalblock = 'Click Add Block to add';
homing.mydebug = 'Debug printing: 0 is off; 5 is high';
			
%Launch
launch.name = 'launch';
launch.comment = 'Printed out whenever behavior changes state (start, end)';
launch.duration = 'End behavior after this interval';
launch.elevator = 'Commanded elevator';
launch.finaldepth = 'End when below this depth';
launch.abortontimeout = 'Should mission abort if not at depth?';
launch.initialelevator = 'Initial elevator setting';
launch.initialrunout = 'Total running time at initial elevator setting';
launch.speedblock = 'Click Add Block to add';
launch.horizontalblock = 'Click Add Block to add';
launch.debug = 'Debug printing: 0 is off; 5 is high';

%MissionTime
missiontimer.name = 'missiontimer';
missiontimer.comment = 'Printed out whenever behavior changes state (start, end)';
missiontimer.timeout = 'End mission after this interval';
missiontimer.debug = 'Debug printing: 0 is off; 5 is high';

%SetDepth
setdepth.name = 'setdepth';
setdepth.comment = 'Printed out whenever behavior changes state (start, end)';
setdepth.duration = 'End behavior after this interval';
setdepth.depth = 'Commanded depth if verticalMode is "depth';
setdepth.speedblock = 'Click Add Block to add';
setdepth.debug = 'Debug printing: 0 is off; 5 is high';

%SetElevator
setElevator.name = 'setelevator';
setElevator.comment = 'Printed out whenever behavior changes state (start, end)';
setElevator.duration = 'End behavior after this interval';
setElevator.elevator = 'Commanded elevator angle';
setElevator.minDepth = 'End if above this depth';
setElevator.maxDepth = 'End if below this depth';
setElevator.maxPitch = 'End if abs value of this pitch is exceeded';
setElevator.speedblock = 'Click Add Block to add';
setElevator.debug = 'Debug printing: 0 is off; 5 is high';

%Setpoint
setpoint.name = 'setpoint';
setpoint.comment = 'Printed out whenever behavior changes state (start, end)';
setpoint.duration = 'End behavior after this interval';
setpoint.heading = 'Commanded heading';
setpoint.legDuration = 'Duration of each leg';
setpoint.maxLegs = 'Maximum number of legs';
setpoint.headingInc = 'Increment heading by this amount after each leg';
setpoint.verticalblock = 'Click Add Block to add';
setpoint.speedblock = 'Click Add Block to add';
setpoint.debug = 'Debug printing: 0 is off; 5 is high';

%SetRudder
setRudder.name = 'setrudder';
setRudder.comment = 'Printed out whenever behavior changes state (start, end)';
setRudder.duration = 'End behavior after this interval';
setRudder.rudder = 'Commanded rudder angle';
setRudder.depth = 'Commanded depth';
setRudder.speedblock = 'Click Add Block to add';
setRudder.debug = 'Debug printing: 0 is off; 5 is high';

%Trackline Geo
tracklinegeo.name = 'tracklinegeo';
tracklinegeo.comment = 'Printed out whenever behavior changes state (start, end)';
tracklinegeo.duration = 'End behavior after this interval';
tracklinegeo.latitude = 'End position of trackline in Lat';
tracklinegeo.longitude = 'End position of trackline in Long';
tracklinegeo.captureradius = 'Capture radius';
tracklinegeo.circlemode = 'False is finish line';
tracklinegeo.initiallat = 'Start position of trackline in Lat';
tracklinegeo.initiallong = 'Start position of trackline in Long';
tracklinegeo.crosstrackpgain = 'Proportional heading gain on cross track error';
tracklinegeo.crosstrackigain = 'Integral heading gain on cross track error';
tracklinegeo.verticalblock = 'Click Add Block to add';
tracklinegeo.speedblock = 'Click Add Block to add';
tracklinegeo.debug = 'Debug printing: 0 is off; 5 is high';

%Trackline Utm
tracklineutm.name = 'tracklineutm';
tracklineutm.comment = 'Printed out whenever behavior changes state (start, end)';
tracklineutm.duration = 'End behavior after this interval';
tracklineutm.northing = 'End position of trackline in UTM, N';
tracklineutm.easting = 'End position of trackline in UTM, E';
tracklineutm.captureradius = 'Capture radius';
tracklineutm.circlemode = 'False is finish line';
tracklineutm.initialn = 'Start position of trackline in UTM, N';
tracklineutm.initiale = 'Start position of trackline in UTM, E';
tracklineutm.crosstrackpgain = 'Proportional heading gain on cross track error';
tracklineutm.crosstrackigain = 'Integral heading gain on cross track error';
tracklineutm.verticalblock = 'Click Add Block to add';
tracklineutm.speedblock = 'Click Add Block to add';
tracklineutm.debug = 'Debug printing: 0 is off; 5 is high';

%Waypoint Geo
waypointgeo.name = 'waypointgeo';
waypointgeo.comment = 'Printed out whenever behavior changes state (start, end)';
waypointgeo.duration = 'End behavior after this interval';
waypointgeo.latitude = 'End position of behavior in Lat';
waypointgeo.longitude = 'End position of behavior in Long';
waypointgeo.captureradius = 'Capture radius';
waypointgeo.circlemode = 'False is finish line';
waypointgeo.verticalblock = 'Click Add Block to add';
waypointgeo.speedblock = 'Click Add Block to add';
waypointgeo.debug = 'Debug printing: 0 is off; 5 is high';

%Waypoint Utm
waypointutm.name = 'waypointutm';
waypointutm.comment = 'Printed out whenever behavior changes state (start, end)';
waypointutm.duration = 'End behavior after this interval';
waypointutm.northing = 'End position of behavior in UTM, N';
waypointutm.easting = 'End position of behavior in UTM, E';
waypointutm.captureradius = 'Capture radius';
waypointutm.circlemode = 'False is finish line';
waypointutm.verticalblock = 'Click Add Block to add';
waypointutm.speedblock = 'Click Add Block to add';
waypointutm.debug = 'Debug printing: 0 is off; 5 is high';

%Wiggle
wiggle.name = 'wiggle';
wiggle.comment = 'Printed out whenever behavior changes state (start, end)';
wiggle.duration = 'End behavior after this interval';
wiggle.rudderperiod = 'Period of rudder oscillations';
wiggle.elevatorperiod = 'Period of elevator oscillations';
wiggle.rudderamplitude = 'Amplitude of rudder oscillations';
wiggle.elevatoramplitude = 'Amplitude of elevator oscillations';
wiggle.speedblock = 'Click Add Block to add';
wiggle.debug = 'Debug printing: 0 is off; 5 is high';

%Yoyo
yoyo.name = 'yoyo';
yoyo.comment = 'Printed out whenever behavior changes state (start, end)';
yoyo.duration = 'End behavior after this interval';
yoyo.mindepth = 'Start down when above this depth';
yoyo.maxdepth = 'Start up when below this depth';
yoyo.minaltitude = 'Start up when below this altitude';
yoyo.maxcycles = 'End after this many cycles';
yoyo.debug = 'Debug printing: 0 is off; 5 is high';

%YoyoLeicaCalibrate
yoyoleicacalibrate.name = 'yoyoleicacalibrate';
yoyoleicacalibrate.comment = 'Printed out whenever behavior changes state (start, end)';
yoyoleicacalibrate.duration = 'End behavior after this interval';
yoyoleicacalibrate.mindepth = 'Start down when above this depth';
yoyoleicacalibrate.maxdepth = 'Start up when below this depth';
yoyoleicacalibrate.pitchup = 'Pitch on upward leg';
yoyoleicacalibrate.pitchdown = 'Pitch on downward leg';
yoyoleicacalibrate.minaltitude = 'Start up when below this altitude';
yoyoleicacalibrate.maxcycles = 'End after this many cycles';
yoyoleicacalibrate.initialheading = 'initial heading';
yoyoleicacalibrate.increment = 'increment';
yoyoleicacalibrate.speedblock = 'Click Add Block to add';
yoyoleicacalibrate.debug = 'Debug printing: 0 is off; 5 is high';

% YoyoPitch					 
yoyopitch.name = 'yoyopitch';
yoyopitch.comment = 'Printed out whenever behavior changes state (start, end)';
yoyopitch.duration = 'End behavior after this interval';
yoyopitch.mindepth = 'Start down when above this depth';
yoyopitch.maxdepth = 'Start up when below this depth';
yoyopitch.pitchup = 'Pitch on upward leg';
yoyopitch.pitchdown = 'Pitch on downward leg';
yoyopitch.minaltitude = 'Start up when below this altitude';
yoyopitch.maxcycles = 'End after this many cycles';
yoyopitch.debug = 'Debug printing: 0 is off; 5 is high';

% create cell array
clear behaviorsOnly
s = whos;
n = {s.name};
bnames = '';
for i=1:length(n),
	eval(['bnotes{i} = ' s(i).name ';']);
	bnames = strvcat(bnames,s(i).name);
end