Skip to content

Commit

Permalink
Merge pull request #35 from OpenROV/30.0.4
Browse files Browse the repository at this point in the history
30.0.4
  • Loading branch information
Charles Cross committed Jun 2, 2016
2 parents 236d7e2 + ee2ed27 commit 90a096d
Show file tree
Hide file tree
Showing 19 changed files with 1,581 additions and 447 deletions.
16 changes: 12 additions & 4 deletions OpenROV/AConfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,20 +26,24 @@
#endif

#define HAS_STD_LIGHTS (1)
#define HAS_EXT_LIGHTS (1)
#define HAS_STD_CALIBRATIONLASERS (1)
#define HAS_STD_CAMERAMOUNT (1)
#define HAS_STD_AUTOPILOT (1)
#define HAS_EXP_AUTOPILOT (0)
#define HAS_ALT_SERVO (1)
#define DEADMANSWITCH_ON (1)
#define DEADMANSWITCH_ON (0)

// Thrusters configurations
// Thrusters configurations (These appear depricated and replaced by the THRUSTER_CONFIGURATION below)
#define THRUSTER_CONFIG_NONE (0)
#define THRUSTER_CONFIG_2X1 (1)
#define THRUSTER_CONFIG_2Xv2 (2)
#define THRUSTER_CONFIG_v2X1Xv2 (3)

// Selected Thruster Configuration
#define THRUSTER_CONFIGURATION THRUSTER_CONFIG_2X1

//#define THRUSTER_CONFIGURATION THRUSTER_CONFIG_2Xv2
//#define THRUSTER_CONFIGURATION THRUSTER_CONFIG_v2X1Xv2

// ---------------------------------------------------------
// After Market Modules
Expand All @@ -49,9 +53,13 @@
#define HAS_POLOLU_MINIMUV (0)

// MS5803_XXBA Depth Sensor
#define HAS_MS5803_XXBA (1)
#define HAS_MS5803_XXBA (0)
#define MS5803_XXBA_I2C_ADDRESS 0x76

// MS5837_30BA Depth Sensor
#define HAS_MS5837_30BA (1)
#define MS5837_30BA_I2C_ADDRESS 0x76

// MPU9150 IMU
#define HAS_MPU9150 (1)
#define HAS_BNO055 (1)
Expand Down
198 changes: 100 additions & 98 deletions OpenROV/CAutopilot_STD.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,127 +48,129 @@ void CAutopilot::Update( CCommand& command )
{
//intended to respond to fly by wire commands: MaintainHeading(); TurnTo(compassheading); DiveTo(depth);



if( command.Equals( "headloff" ) )
{
_headingHoldEnabled = false;
raw_Left = 0;
raw_Right = 0;
hdg_Error_Integral = 0; // Reset error integrator
tgt_Hdg = -500; // -500 = system not in hdg hold

int m_argumentsToSend[] = {1, 00}; //include number of parms as fist parm
command.PushCommand( "yaw", m_argumentsToSend );
Serial.println( F( "log:heading_hold_disabled;" ) );
Serial.print( F( "targetHeading:" ) );
Serial.print( DISABLED );
Serial.println( ';' );

}

if( command.Equals( "headlon" ) )
{
_headingHoldEnabled = true;

if( command.m_arguments[0] == 0 )
{
_headingHoldTarget = NDataManager::m_navData.HDGD;
}
else
{
_headingHoldTarget = command.m_arguments[1];
}

tgt_Hdg = _headingHoldTarget;
Serial.print( F( "log:heading_hold_enabled on=" ) );
Serial.print( tgt_Hdg );
Serial.println( ';' );
Serial.print( F( "targetHeading:" ) );
Serial.print( tgt_Hdg );
Serial.println( ';' );
}

//Backwards compatibility for a release or two (2.5.1 release)
if( command.Equals( "holdHeading_toggle" ) )
if( NCommManager::m_isCommandAvailable )
{
if( _headingHoldEnabled )

if( command.Equals( "headloff" ) || command.Equals( "holdHeading_off" ) )
{
int m_argumentsToSend[] = {0}; //include number of parms as fist parm
command.PushCommand( "headloff", m_argumentsToSend );
_headingHoldEnabled = false;
raw_Left = 0;
raw_Right = 0;
hdg_Error_Integral = 0; // Reset error integrator
tgt_Hdg = -500; // -500 = system not in hdg hold

int m_argumentsToSend[] = {1, 00}; //include number of parms as fist parm
command.PushCommand( "yaw", m_argumentsToSend );
Serial.println( F( "log:heading_hold_disabled;" ) );
Serial.print( F( "targetHeading:" ) );
Serial.print( DISABLED );
Serial.println( ';' );

}
else

if( command.Equals( "headlon" ) || command.Equals( "holdHeading_on" ) )
{
_headingHoldEnabled = true;

if( command.m_arguments[0] == 0 )
{
int m_argumentsToSend[] = {0}; //include number of parms as fist parm
command.PushCommand( "headlon", m_argumentsToSend );
_headingHoldTarget = NDataManager::m_navData.HDGD;
}
else
{
int m_argumentsToSend[] = {1, command.m_arguments[1]}; //include number of parms as fist parm
command.PushCommand( "headlon", m_argumentsToSend );
_headingHoldTarget = command.m_arguments[1];
}


tgt_Hdg = _headingHoldTarget;
Serial.print( F( "log:heading_hold_enabled on=" ) );
Serial.print( tgt_Hdg );
Serial.println( ';' );
Serial.print( F( "targetHeading:" ) );
Serial.print( tgt_Hdg );
Serial.println( ';' );
}
}

if( command.Equals( "deptloff" ) )
{
_depthHoldEnabled = false;
raw_lift = 0;
target_depth = 0;

int m_argumentsToSend[] = {1, 0}; //include number of parms as fist parm
command.PushCommand( "lift", m_argumentsToSend );
Serial.println( F( "log:depth_hold_disabled;" ) );
Serial.print( F( "targetDepth:" ) );
Serial.print( DISABLED );
Serial.println( ';' );

}

if( command.Equals( "deptlon" ) )
{
_depthHoldEnabled = true;

if( command.m_arguments[0] == 0 )

//Backwards compatibility for a release or two (2.5.1 release)
if( command.Equals( "holdHeading_toggle" ) )
{
_depthHoldTarget = NDataManager::m_navData.DEEP * 100; //casting to cm
if( _headingHoldEnabled )
{
int m_argumentsToSend[] = {0}; //include number of parms as fist parm
command.PushCommand( "headloff", m_argumentsToSend );
}
else
{
if( command.m_arguments[0] == 0 )
{
int m_argumentsToSend[] = {0}; //include number of parms as fist parm
command.PushCommand( "headlon", m_argumentsToSend );
}
else
{
int m_argumentsToSend[] = {1, command.m_arguments[1]}; //include number of parms as fist parm
command.PushCommand( "headlon", m_argumentsToSend );
}

}
}
else

if( command.Equals( "deptloff" ) || command.Equals( "holdDepth_off" ) )
{
_depthHoldTarget = command.m_arguments[1];
_depthHoldEnabled = false;
raw_lift = 0;
target_depth = 0;

int m_argumentsToSend[] = {1, 0}; //include number of parms as fist parm
command.PushCommand( "lift", m_argumentsToSend );
Serial.println( F( "log:depth_hold_disabled;" ) );
Serial.print( F( "targetDepth:" ) );
Serial.print( DISABLED );
Serial.println( ';' );

}

target_depth = _depthHoldTarget;
Serial.print( F( "log:depth_hold_enabled on=" ) );
Serial.print( target_depth );
Serial.println( ';' );
Serial.print( F( "targetDepth:" ) );
Serial.print( target_depth );
Serial.println( ';' );
}


if( command.Equals( "holdDepth_toggle" ) )
{
if( _depthHoldEnabled )

if( command.Equals( "deptlon" ) || command.Equals( "holdDepth_on" ) )
{
int m_argumentsToSend[] = {0}; //include number of parms as fist parm
command.PushCommand( "deptloff", m_argumentsToSend );
_depthHoldEnabled = true;

if( command.m_arguments[0] == 0 )
{
_depthHoldTarget = NDataManager::m_navData.DEEP * 100; //casting to cm
}
else
{
_depthHoldTarget = command.m_arguments[1];
}

target_depth = _depthHoldTarget;
Serial.print( F( "log:depth_hold_enabled on=" ) );
Serial.print( target_depth );
Serial.println( ';' );
Serial.print( F( "targetDepth:" ) );
Serial.print( target_depth );
Serial.println( ';' );
}
else


if( command.Equals( "holdDepth_toggle" ) )
{
if( command.m_arguments[0] == 0 )
if( _depthHoldEnabled )
{
int m_argumentsToSend[] = {0}; //include number of parms as fist parm
command.PushCommand( "deptlon", m_argumentsToSend );
command.PushCommand( "deptloff", m_argumentsToSend );
}
else
{
int m_argumentsToSend[] = {1, command.m_arguments[1]}; //include number of parms as fist parm
command.PushCommand( "deptlon", m_argumentsToSend );
if( command.m_arguments[0] == 0 )
{
int m_argumentsToSend[] = {0}; //include number of parms as fist parm
command.PushCommand( "deptlon", m_argumentsToSend );
}
else
{
int m_argumentsToSend[] = {1, command.m_arguments[1]}; //include number of parms as fist parm
command.PushCommand( "deptlon", m_argumentsToSend );
}
}
}
}
Expand Down
Loading

0 comments on commit 90a096d

Please sign in to comment.