@ -6,14 +6,15 @@ UASUnitTest::UASUnitTest()
@@ -6,14 +6,15 @@ UASUnitTest::UASUnitTest()
void UASUnitTest : : initTestCase ( )
{
mav = new MAVLinkProtocol ( ) ;
uas = new UAS ( mav , UASID ) ;
mav = new MAVLinkProtocol ( ) ;
link = new SerialLink ( ) ;
uas = new UAS ( mav , UASID ) ;
}
void UASUnitTest : : cleanupTestCase ( )
{
delete uas ;
delete mav ;
delete uas ;
delete mav ;
}
@ -34,123 +35,244 @@ void UASUnitTest::getUASID_test()
@@ -34,123 +35,244 @@ void UASUnitTest::getUASID_test()
void UASUnitTest : : getUASName_test ( )
{
// Test that the name is build as MAV + ID
QCOMPARE ( uas - > getUASName ( ) , " MAV 0 " + QString : : number ( UASID ) ) ;
// Test that the name is build as MAV + ID
QCOMPARE ( uas - > getUASName ( ) , " MAV 0 " + QString : : number ( UASID ) ) ;
}
void UASUnitTest : : getUpTime_test ( )
{
UAS * uas2 = new UAS ( mav ) ;
// Test that the uptime starts at zero to a
// precision of seconds
QCOMPARE ( floor ( uas2 - > getUptime ( ) / 1000.0 ) , 0.0 ) ;
UAS * uas2 = new UAS ( mav ) ;
// Test that the uptime starts at zero to a
// precision of seconds
QCOMPARE ( floor ( uas2 - > getUptime ( ) / 1000.0 ) , 0.0 ) ;
// Sleep for three seconds
QTest : : qSleep ( 3000 ) ;
// Sleep for three seconds
QTest : : qSleep ( 3000 ) ;
// Test that the up time is computed correctly to a
// precision of seconds
QCOMPARE ( floor ( uas2 - > getUptime ( ) / 1000.0 ) , 3.0 ) ;
// Test that the up time is computed correctly to a
// precision of seconds
QCOMPARE ( floor ( uas2 - > getUptime ( ) / 1000.0 ) , 3.0 ) ;
delete uas2 ;
delete uas2 ;
}
void UASUnitTest : : getCommunicationStatus_test ( )
{
// Verify that upon construction the Comm status is disconnected
QCOMPARE ( uas - > getCommunicationStatus ( ) , static_cast < int > ( UASInterface : : COMM_DISCONNECTED ) ) ;
// Verify that upon construction the Comm status is disconnected
QCOMPARE ( uas - > getCommunicationStatus ( ) , static_cast < int > ( UASInterface : : COMM_DISCONNECTED ) ) ;
}
void UASUnitTest : : filterVoltage_test ( )
{
float verificar = uas - > filterVoltage ( 0.4f ) ;
// Verify that upon construction the Comm status is disconnected
QCOMPARE ( verificar , 8.52f ) ;
// Verify that upon construction the Comm status is disconnected
QCOMPARE ( verificar , 8.52f ) ;
}
void UASUnitTest : : getAutopilotType_test ( )
{
int verificar = uas - > getAutopilotType ( ) ;
// Verify that upon construction the autopilot is set to -1
QCOMPARE ( verificar , - 1 ) ;
int type = uas - > getAutopilotType ( ) ;
// Verify that upon construction the autopilot is set to -1
QCOMPARE ( type , - 1 ) ;
}
void UASUnitTest : : setAutopilotType_test ( )
{
uas - > setAutopilotType ( 2 ) ;
// Verify that the autopilot is set
QCOMPARE ( uas - > getAutopilotType ( ) , 2 ) ;
uas - > setAutopilotType ( 2 ) ;
// Verify that the autopilot is set
QCOMPARE ( uas - > getAutopilotType ( ) , 2 ) ;
}
void UASUnitTest : : getStatusForCode_test ( )
{
QString state , desc ;
state = " " ;
desc = " " ;
QString state , desc ;
state = " " ;
desc = " " ;
uas - > getStatusForCode ( MAV_STATE_UNINIT , state , desc ) ;
QVERIFY ( state = = " UNINIT " ) ;
uas - > getStatusForCode ( MAV_STATE_UNINIT , state , desc ) ;
QVERIFY ( state = = " UNINIT " ) ;
uas - > getStatusForCode ( MAV_STATE_UNINIT , state , desc ) ;
QVERIFY ( state = = " UNINIT " ) ;
uas - > getStatusForCode ( MAV_STATE_UNINIT , state , desc ) ;
QVERIFY ( state = = " UNINIT " ) ;
uas - > getStatusForCode ( MAV_STATE_BOOT , state , desc ) ;
QVERIFY ( state = = " BOOT " ) ;
uas - > getStatusForCode ( MAV_STATE_BOOT , state , desc ) ;
QVERIFY ( state = = " BOOT " ) ;
uas - > getStatusForCode ( MAV_STATE_CALIBRATING , state , desc ) ;
QVERIFY ( state = = " CALIBRATING " ) ;
uas - > getStatusForCode ( MAV_STATE_CALIBRATING , state , desc ) ;
QVERIFY ( state = = " CALIBRATING " ) ;
uas - > getStatusForCode ( MAV_STATE_ACTIVE , state , desc ) ;
QVERIFY ( state = = " ACTIVE " ) ;
uas - > getStatusForCode ( MAV_STATE_ACTIVE , state , desc ) ;
QVERIFY ( state = = " ACTIVE " ) ;
uas - > getStatusForCode ( MAV_STATE_STANDBY , state , desc ) ;
QVERIFY ( state = = " STANDBY " ) ;
uas - > getStatusForCode ( MAV_STATE_STANDBY , state , desc ) ;
QVERIFY ( state = = " STANDBY " ) ;
uas - > getStatusForCode ( MAV_STATE_CRITICAL , state , desc ) ;
QVERIFY ( state = = " CRITICAL " ) ;
uas - > getStatusForCode ( MAV_STATE_CRITICAL , state , desc ) ;
QVERIFY ( state = = " CRITICAL " ) ;
uas - > getStatusForCode ( MAV_STATE_EMERGENCY , state , desc ) ;
QVERIFY ( state = = " EMERGENCY " ) ;
uas - > getStatusForCode ( MAV_STATE_EMERGENCY , state , desc ) ;
QVERIFY ( state = = " EMERGENCY " ) ;
uas - > getStatusForCode ( MAV_STATE_POWEROFF , state , desc ) ;
QVERIFY ( state = = " SHUTDOWN " ) ;
uas - > getStatusForCode ( MAV_STATE_POWEROFF , state , desc ) ;
QVERIFY ( state = = " SHUTDOWN " ) ;
uas - > getStatusForCode ( 5325 , state , desc ) ;
QVERIFY ( state = = " UNKNOWN " ) ;
uas - > getStatusForCode ( 5325 , state , desc ) ;
QVERIFY ( state = = " UNKNOWN " ) ;
}
void UASUnitTest : : getLocalX_test ( )
{
QCOMPARE ( uas - > getLocalX ( ) , 0.0 ) ;
QCOMPARE ( uas - > getLocalX ( ) , 0.0 ) ;
}
void UASUnitTest : : getLocalY_test ( )
{
QCOMPARE ( uas - > getLocalY ( ) , 0.0 ) ;
QCOMPARE ( uas - > getLocalY ( ) , 0.0 ) ;
}
void UASUnitTest : : getLocalZ_test ( )
{
QCOMPARE ( uas - > getLocalZ ( ) , 0.0 ) ;
QCOMPARE ( uas - > getLocalZ ( ) , 0.0 ) ;
}
void UASUnitTest : : getLatitude_test ( )
{ QCOMPARE ( uas - > getLatitude ( ) , 0.0 ) ;
}
void UASUnitTest : : getLongitude_test ( )
{
QCOMPARE ( uas - > getLongitude ( ) , 0.0 ) ;
QCOMPARE ( uas - > getLongitude ( ) , 0.0 ) ;
}
void UASUnitTest : : getAltitude_test ( )
{
QCOMPARE ( uas - > getAltitude ( ) , 0.0 ) ;
QCOMPARE ( uas - > getAltitude ( ) , 0.0 ) ;
}
void UASUnitTest : : getRoll_test ( )
{
QCOMPARE ( uas - > getRoll ( ) , 0.0 ) ;
QCOMPARE ( uas - > getRoll ( ) , 0.0 ) ;
}
void UASUnitTest : : getPitch_test ( )
{
QCOMPARE ( uas - > getPitch ( ) , 0.0 ) ;
QCOMPARE ( uas - > getPitch ( ) , 0.0 ) ;
}
void UASUnitTest : : getYaw_test ( )
{
QCOMPARE ( uas - > getYaw ( ) , 0.0 ) ;
QCOMPARE ( uas - > getYaw ( ) , 0.0 ) ;
}
void UASUnitTest : : attitudeLimitsZero_test ( )
{
mavlink_message_t msg ;
mavlink_attitude_t att ;
// Set zero values and encode them
att . roll = 0.0f ;
att . pitch = 0.0f ;
att . yaw = 0.0f ;
mavlink_msg_attitude_encode ( uas - > getUASID ( ) , MAV_COMP_ID_IMU , & msg , & att ) ;
// Let UAS decode message
uas - > receiveMessage ( link , msg ) ;
// Check result
QCOMPARE ( uas - > getRoll ( ) , 0.0 ) ;
QCOMPARE ( uas - > getPitch ( ) , 0.0 ) ;
QCOMPARE ( uas - > getYaw ( ) , 0.0 ) ;
}
void UASUnitTest : : attitudeLimitsPi_test ( )
{
mavlink_message_t msg ;
mavlink_attitude_t att ;
// Set PI values and encode them
att . roll = M_PI ;
att . pitch = M_PI ;
att . yaw = M_PI ;
mavlink_msg_attitude_encode ( uas - > getUASID ( ) , MAV_COMP_ID_IMU , & msg , & att ) ;
// Let UAS decode message
uas - > receiveMessage ( link , msg ) ;
// Check result
QVERIFY ( ( uas - > getRoll ( ) < M_PI + 0.000001 ) & & ( uas - > getRoll ( ) > M_PI + - 0.000001 ) ) ;
QVERIFY ( ( uas - > getPitch ( ) < M_PI + 0.000001 ) & & ( uas - > getPitch ( ) > M_PI + - 0.000001 ) ) ;
QVERIFY ( ( uas - > getYaw ( ) < M_PI + 0.000001 ) & & ( uas - > getYaw ( ) > M_PI + - 0.000001 ) ) ;
}
void UASUnitTest : : attitudeLimitsMinusPi_test ( )
{
mavlink_message_t msg ;
mavlink_attitude_t att ;
// Set -PI values and encode them
att . roll = - M_PI ;
att . pitch = - M_PI ;
att . yaw = - M_PI ;
mavlink_msg_attitude_encode ( uas - > getUASID ( ) , MAV_COMP_ID_IMU , & msg , & att ) ;
// Let UAS decode message
uas - > receiveMessage ( link , msg ) ;
// Check result
QVERIFY ( ( uas - > getRoll ( ) > - M_PI - 0.000001 ) & & ( uas - > getRoll ( ) < - M_PI + 0.000001 ) ) ;
QVERIFY ( ( uas - > getPitch ( ) > - M_PI - 0.000001 ) & & ( uas - > getPitch ( ) < - M_PI + 0.000001 ) ) ;
QVERIFY ( ( uas - > getYaw ( ) > - M_PI - 0.000001 ) & & ( uas - > getYaw ( ) < - M_PI + 0.000001 ) ) ;
}
void UASUnitTest : : attitudeLimitsTwoPi_test ( )
{
mavlink_message_t msg ;
mavlink_attitude_t att ;
// Set off-limit values and check
// correct wrapping
// Set 2PI values and encode them
att . roll = 2 * M_PI ;
att . pitch = 2 * M_PI ;
att . yaw = 2 * M_PI ;
mavlink_msg_attitude_encode ( uas - > getUASID ( ) , MAV_COMP_ID_IMU , & msg , & att ) ;
// Let UAS decode message
uas - > receiveMessage ( link , msg ) ;
// Check result
QVERIFY ( ( uas - > getRoll ( ) < 0.000001 ) & & ( uas - > getRoll ( ) > - 0.000001 ) ) ;
QVERIFY ( ( uas - > getPitch ( ) < 0.000001 ) & & ( uas - > getPitch ( ) > - 0.000001 ) ) ;
QVERIFY ( ( uas - > getYaw ( ) < 0.000001 ) & & ( uas - > getYaw ( ) > - 0.000001 ) ) ;
}
void UASUnitTest : : attitudeLimitsMinusTwoPi_test ( )
{
mavlink_message_t msg ;
mavlink_attitude_t att ;
// Set -2PI values and encode them
att . roll = - 2 * M_PI ;
att . pitch = - 2 * M_PI ;
att . yaw = - 2 * M_PI ;
mavlink_msg_attitude_encode ( uas - > getUASID ( ) , MAV_COMP_ID_IMU , & msg , & att ) ;
// Let UAS decode message
uas - > receiveMessage ( link , msg ) ;
// Check result
QVERIFY ( ( uas - > getRoll ( ) < 0.000001 ) & & ( uas - > getRoll ( ) > - 0.000001 ) ) ;
QVERIFY ( ( uas - > getPitch ( ) < 0.000001 ) & & ( uas - > getPitch ( ) > - 0.000001 ) ) ;
QVERIFY ( ( uas - > getYaw ( ) < 0.000001 ) & & ( uas - > getYaw ( ) > - 0.000001 ) ) ;
}
void UASUnitTest : : attitudeLimitsTwoPiOne_test ( )
{
mavlink_message_t msg ;
mavlink_attitude_t att ;
// Set over 2 PI values and encode them
att . roll = 2 * M_PI + 1.0f ;
att . pitch = 2 * M_PI + 1.0f ;
att . yaw = 2 * M_PI + 1.0f ;
mavlink_msg_attitude_encode ( uas - > getUASID ( ) , MAV_COMP_ID_IMU , & msg , & att ) ;
// Let UAS decode message
uas - > receiveMessage ( link , msg ) ;
// Check result
QVERIFY ( ( uas - > getRoll ( ) < 1.000001 ) & & ( uas - > getRoll ( ) > 0.999999 ) ) ;
QVERIFY ( ( uas - > getPitch ( ) < 1.000001 ) & & ( uas - > getPitch ( ) > 0.999999 ) ) ;
QVERIFY ( ( uas - > getYaw ( ) < 1.000001 ) & & ( uas - > getYaw ( ) > 0.999999 ) ) ;
}
void UASUnitTest : : attitudeLimitsMinusTwoPiOne_test ( )
{
mavlink_message_t msg ;
mavlink_attitude_t att ;
// Set 3PI values and encode them
att . roll = - 2 * M_PI - 1.0f ;
att . pitch = - 2 * M_PI - 1.0f ;
att . yaw = - 2 * M_PI - 1.0f ;
mavlink_msg_attitude_encode ( uas - > getUASID ( ) , MAV_COMP_ID_IMU , & msg , & att ) ;
// Let UAS decode message
uas - > receiveMessage ( link , msg ) ;
// Check result
QVERIFY ( ( uas - > getRoll ( ) > - 1.000001 ) & & ( uas - > getRoll ( ) < - 0.999999 ) ) ;
QVERIFY ( ( uas - > getPitch ( ) > - 1.000001 ) & & ( uas - > getPitch ( ) < - 0.999999 ) ) ;
QVERIFY ( ( uas - > getYaw ( ) > - 1.000001 ) & & ( uas - > getYaw ( ) < - 0.999999 ) ) ;
}