@ -76,28 +76,28 @@ AirMapFlightInfo::AirMapFlightInfo(const airmap::Flight& flight, QObject *parent
QString
QString
AirMapFlightInfo : : createdTime ( )
AirMapFlightInfo : : createdTime ( )
{
{
return QDateTime : : fromMSecsSinceEpoch ( ( quint64 ) airmap : : milliseconds_since_epoch ( _flight . created_at ) ) . toString ( " yyyy MM dd - hh:mm:ss " ) ;
return QDateTime : : fromMSecsSinceEpoch ( static_cast < qint64 > ( airmap : : milliseconds_since_epoch ( _flight . created_at ) ) ) . toString ( " yyyy MM dd - hh:mm:ss " ) ;
}
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
QString
QString
AirMapFlightInfo : : startTime ( )
AirMapFlightInfo : : startTime ( )
{
{
return QDateTime : : fromMSecsSinceEpoch ( ( quint64 ) airmap : : milliseconds_since_epoch ( _flight . start_time ) ) . toString ( " yyyy MM dd - hh:mm:ss " ) ;
return QDateTime : : fromMSecsSinceEpoch ( static_cast < qint64 > ( airmap : : milliseconds_since_epoch ( _flight . start_time ) ) ) . toString ( " yyyy MM dd - hh:mm:ss " ) ;
}
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
QDateTime
QDateTime
AirMapFlightInfo : : qStartTime ( )
AirMapFlightInfo : : qStartTime ( )
{
{
return QDateTime : : fromMSecsSinceEpoch ( ( quint64 ) airmap : : milliseconds_since_epoch ( _flight . start_time ) ) ;
return QDateTime : : fromMSecsSinceEpoch ( static_cast < qint64 > ( airmap : : milliseconds_since_epoch ( _flight . start_time ) ) ) ;
}
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
bool
bool
AirMapFlightInfo : : active ( )
AirMapFlightInfo : : active ( )
{
{
QDateTime end = QDateTime : : fromMSecsSinceEpoch ( ( quint64 ) airmap : : milliseconds_since_epoch ( _flight . end_time ) ) ;
QDateTime end = QDateTime : : fromMSecsSinceEpoch ( static_cast < qint64 > ( airmap : : milliseconds_since_epoch ( _flight . end_time ) ) ) ;
QDateTime now = QDateTime : : currentDateTime ( ) ;
QDateTime now = QDateTime : : currentDateTime ( ) ;
return end > now ;
return end > now ;
}
}
@ -114,7 +114,7 @@ AirMapFlightInfo::setEndFlight(DateTime end)
QString
QString
AirMapFlightInfo : : endTime ( )
AirMapFlightInfo : : endTime ( )
{
{
return QDateTime : : fromMSecsSinceEpoch ( ( quint64 ) airmap : : milliseconds_since_epoch ( _flight . end_time ) ) . toString ( " yyyy MM dd - hh:mm:ss " ) ;
return QDateTime : : fromMSecsSinceEpoch ( static_cast < qint64 > ( airmap : : milliseconds_since_epoch ( _flight . end_time ) ) ) . toString ( " yyyy MM dd - hh:mm:ss " ) ;
}
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
@ -123,6 +123,8 @@ AirMapFlightPlanManager::AirMapFlightPlanManager(AirMapSharedState& shared, QObj
, _shared ( shared )
, _shared ( shared )
{
{
connect ( & _pollTimer , & QTimer : : timeout , this , & AirMapFlightPlanManager : : _pollBriefing ) ;
connect ( & _pollTimer , & QTimer : : timeout , this , & AirMapFlightPlanManager : : _pollBriefing ) ;
_flightStartTime = QDateTime : : currentDateTime ( ) . addSecs ( 60 ) ;
_flightEndTime = _flightStartTime . addSecs ( 30 * 60 ) ;
}
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
@ -136,30 +138,31 @@ AirMapFlightPlanManager::~AirMapFlightPlanManager()
void
void
AirMapFlightPlanManager : : setFlightStartTime ( QDateTime start )
AirMapFlightPlanManager : : setFlightStartTime ( QDateTime start )
{
{
quint64 startt = start . toUTC ( ) . toMSecsSinceEpoch ( ) ;
if ( _flightPlan . start_time ! = airmap : : from_milliseconds_since_epoch ( airmap : : milliseconds ( ( long long ) startt ) ) ) {
//-- Can't start in the past
if ( start < QDateTime : : currentDateTime ( ) ) {
if ( start < QDateTime : : currentDateTime ( ) ) {
start = QDateTime : : currentDateTime ( ) . addSecs ( 5 * 60 ) ;
start = QDateTime : : currentDateTime ( ) . addSecs ( 60 ) ;
startt = start . toUTC ( ) . toMSecsSinceEpoch ( ) ;
}
}
_flightPlan . start_time = airmap : : from_milliseconds_since_epoch ( airmap : : milliseconds ( ( long long ) startt ) ) ;
if ( _flightStartTime ! = start ) {
_flightStartTime = start ;
emit flightStartTimeChanged ( ) ;
emit flightStartTimeChanged ( ) ;
}
}
//-- End has to be after start
if ( _flightEndTime < _flightStartTime ) {
_flightEndTime = _flightStartTime . addSecs ( 30 * 60 ) ;
emit flightEndTimeChanged ( ) ;
}
qCDebug ( AirMapManagerLog ) < < " Set time " < < _flightStartTime < < _flightEndTime ;
}
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
void
void
AirMapFlightPlanManager : : setFlightEndTime ( QDateTime end )
AirMapFlightPlanManager : : setFlightEndTime ( QDateTime end )
{
{
quint64 endt = end . toUTC ( ) . toMSecsSinceEpoch ( ) ;
if ( _flightPlan . end_time ! = airmap : : from_milliseconds_since_epoch ( airmap : : milliseconds ( ( long long ) endt ) ) ) {
//-- End has to be after start
//-- End has to be after start
if ( end < flightStartTime ( ) ) {
if ( end < _flightStartTime ) {
end = flightStartTime ( ) . addSecs ( 30 * 60 ) ;
end = _flightStartTime . addSecs ( 30 * 60 ) ;
endt = end . toUTC ( ) . toMSecsSinceEpoch ( ) ;
}
}
_flightPlan . end_time = airmap : : from_milliseconds_since_epoch ( airmap : : milliseconds ( ( long long ) endt ) ) ;
if ( _flightEndTime ! = end ) {
_flightEndTime = end ;
emit flightEndTimeChanged ( ) ;
emit flightEndTimeChanged ( ) ;
}
}
}
}
@ -168,14 +171,14 @@ AirMapFlightPlanManager::setFlightEndTime(QDateTime end)
QDateTime
QDateTime
AirMapFlightPlanManager : : flightStartTime ( ) const
AirMapFlightPlanManager : : flightStartTime ( ) const
{
{
return QDateTime : : fromMSecsSinceEpoch ( ( quint64 ) airmap : : milliseconds_since_epoch ( _flightPlan . start_time ) ) ;
return _flightStartTime ;
}
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
QDateTime
QDateTime
AirMapFlightPlanManager : : flightEndTime ( ) const
AirMapFlightPlanManager : : flightEndTime ( ) const
{
{
return QDateTime : : fromMSecsSinceEpoch ( ( quint64 ) airmap : : milliseconds_since_epoch ( _flightPlan . end_time ) ) ;
return _flightEndTime ;
}
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
@ -205,6 +208,8 @@ AirMapFlightPlanManager::startFlightPlanning(PlanMasterController *planControlle
//-- Get notified of mission changes
//-- Get notified of mission changes
connect ( planController - > missionController ( ) , & MissionController : : missionBoundingCubeChanged , this , & AirMapFlightPlanManager : : _missionChanged ) ;
connect ( planController - > missionController ( ) , & MissionController : : missionBoundingCubeChanged , this , & AirMapFlightPlanManager : : _missionChanged ) ;
}
}
//-- Set initial flight start time
setFlightStartTime ( QDateTime : : currentDateTime ( ) . addSecs ( 5 * 60 ) ) ;
}
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
@ -216,6 +221,7 @@ AirMapFlightPlanManager::submitFlightPlan()
return ;
return ;
}
}
_flightId . clear ( ) ;
_flightId . clear ( ) ;
emit flightIDChanged ( _flightId ) ;
_state = State : : FlightSubmit ;
_state = State : : FlightSubmit ;
FlightPlans : : Submit : : Parameters params ;
FlightPlans : : Submit : : Parameters params ;
params . authorization = _shared . loginToken ( ) . toStdString ( ) ;
params . authorization = _shared . loginToken ( ) . toStdString ( ) ;
@ -229,6 +235,7 @@ AirMapFlightPlanManager::submitFlightPlan()
_flightId = QString : : fromStdString ( _flightPlan . flight_id . get ( ) ) ;
_flightId = QString : : fromStdString ( _flightPlan . flight_id . get ( ) ) ;
_state = State : : Idle ;
_state = State : : Idle ;
_pollBriefing ( ) ;
_pollBriefing ( ) ;
emit flightIDChanged ( _flightId ) ;
} else {
} else {
QString description = QString : : fromStdString ( result . error ( ) . description ( ) ? result . error ( ) . description ( ) . get ( ) : " " ) ;
QString description = QString : : fromStdString ( result . error ( ) . description ( ) ? result . error ( ) . description ( ) . get ( ) : " " ) ;
emit error ( " Failed to submit Flight Plan " ,
emit error ( " Failed to submit Flight Plan " ,
@ -301,7 +308,7 @@ AirMapFlightPlanManager::_endFlight()
qCDebug ( AirMapManagerLog ) < < " End non existing flight " ;
qCDebug ( AirMapManagerLog ) < < " End non existing flight " ;
return ;
return ;
}
}
qCDebug ( AirMapManagerLog ) < < " End Flight. State: " < < ( int ) _state ;
qCDebug ( AirMapManagerLog ) < < " End Flight. State: " < < static_cast < int > ( _state ) ;
if ( _state ! = State : : Idle ) {
if ( _state ! = State : : Idle ) {
QTimer : : singleShot ( 100 , this , & AirMapFlightPlanManager : : _endFlight ) ;
QTimer : : singleShot ( 100 , this , & AirMapFlightPlanManager : : _endFlight ) ;
return ;
return ;
@ -343,12 +350,12 @@ AirMapFlightPlanManager::_collectFlightDtata()
}
}
//-- Get flight bounding cube and prepare (box) polygon
//-- Get flight bounding cube and prepare (box) polygon
QGCGeoBoundingCube bc = * _planController - > missionController ( ) - > travelBoundingCube ( ) ;
QGCGeoBoundingCube bc = * _planController - > missionController ( ) - > travelBoundingCube ( ) ;
if ( ! bc . isValid ( ) | | ! bc . area ( ) ) {
if ( ! bc . isValid ( ) | | ( fabs ( bc . area ( ) ) < 0.0001 ) ) {
//-- TODO: If single point, we need to set a point and a radius instead
//-- TODO: If single point, we need to set a point and a radius instead
qCDebug ( AirMapManagerLog ) < < " Not enough points for a flight plan. " ;
qCDebug ( AirMapManagerLog ) < < " Not enough points for a flight plan. " ;
return false ;
return false ;
}
}
_flight . maxAltitude = fmax ( bc . pointNW . altitude ( ) , bc . pointSE . altitude ( ) ) ;
_flight . maxAltitude = static_cast < float > ( fmax ( bc . pointNW . altitude ( ) , bc . pointSE . altitude ( ) ) ) ;
_flight . takeoffCoord = _planController - > missionController ( ) - > takeoffCoordinate ( ) ;
_flight . takeoffCoord = _planController - > missionController ( ) - > takeoffCoordinate ( ) ;
_flight . coords = bc . polygon2D ( ) ;
_flight . coords = bc . polygon2D ( ) ;
_flight . bc = bc ;
_flight . bc = bc ;
@ -443,7 +450,7 @@ AirMapFlightPlanManager::_updateRulesAndFeatures(std::vector<RuleSet::Id>& rules
case AirspaceRuleFeature : : Float :
case AirspaceRuleFeature : : Float :
//-- Sanity check for floats
//-- Sanity check for floats
if ( std : : isfinite ( feature - > value ( ) . toFloat ( ) ) ) {
if ( std : : isfinite ( feature - > value ( ) . toFloat ( ) ) ) {
features [ feature - > name ( ) . toStdString ( ) ] = RuleSet : : Feature : : Value ( feature - > value ( ) . toFloat ( ) ) ;
features [ feature - > name ( ) . toStdString ( ) ] = RuleSet : : Feature : : Value ( feature - > value ( ) . toDouble ( ) ) ;
}
}
break ;
break ;
case AirspaceRuleFeature : : String :
case AirspaceRuleFeature : : String :
@ -467,9 +474,29 @@ AirMapFlightPlanManager::_updateRulesAndFeatures(std::vector<RuleSet::Id>& rules
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
void
void
AirMapFlightPlanManager : : _updateFlightStartEndTime ( DateTime & start_time , DateTime & end_time )
{
if ( _flightStartTime < QDateTime : : currentDateTime ( ) ) {
//-- Can't start in the past
_flightStartTime = QDateTime : : currentDateTime ( ) ;
emit flightStartTimeChanged ( ) ;
}
quint64 startt = static_cast < quint64 > ( _flightStartTime . toUTC ( ) . toMSecsSinceEpoch ( ) ) ;
start_time = airmap : : from_milliseconds_since_epoch ( airmap : : milliseconds ( static_cast < qint64 > ( startt ) ) ) ;
//-- End has to be after start
if ( _flightEndTime < _flightStartTime ) {
_flightEndTime = _flightStartTime . addSecs ( 30 * 60 ) ;
emit flightEndTimeChanged ( ) ;
}
quint64 endt = static_cast < quint64 > ( _flightEndTime . toUTC ( ) . toMSecsSinceEpoch ( ) ) ;
end_time = airmap : : from_milliseconds_since_epoch ( airmap : : milliseconds ( static_cast < qint64 > ( endt ) ) ) ;
}
//-----------------------------------------------------------------------------
void
AirMapFlightPlanManager : : _uploadFlightPlan ( )
AirMapFlightPlanManager : : _uploadFlightPlan ( )
{
{
qCDebug ( AirMapManagerLog ) < < " Uploading flight plan. State: " < < ( int ) _state ;
qCDebug ( AirMapManagerLog ) < < " Uploading flight plan. State: " < < static_cast < int > ( _state ) ;
if ( _state ! = State : : Idle ) {
if ( _state ! = State : : Idle ) {
QTimer : : singleShot ( 100 , this , & AirMapFlightPlanManager : : _uploadFlightPlan ) ;
QTimer : : singleShot ( 100 , this , & AirMapFlightPlanManager : : _uploadFlightPlan ) ;
return ;
return ;
@ -482,14 +509,12 @@ AirMapFlightPlanManager::_uploadFlightPlan()
FlightPlans : : Create : : Parameters params ;
FlightPlans : : Create : : Parameters params ;
params . max_altitude = _flight . maxAltitude ;
params . max_altitude = _flight . maxAltitude ;
params . min_altitude = 0.0 ;
params . min_altitude = 0.0 ;
params . buffer = 2 .f;
params . buffer = 0 .f;
params . latitude = _flight . takeoffCoord . latitude ( ) ;
params . latitude = static_cast < float > ( _flight . takeoffCoord . latitude ( ) ) ;
params . longitude = _flight . takeoffCoord . longitude ( ) ;
params . longitude = static_cast < float > ( _flight . takeoffCoord . longitude ( ) ) ;
params . pilot . id = _pilotID . toStdString ( ) ;
params . pilot . id = _pilotID . toStdString ( ) ;
quint64 start = QDateTime : : currentDateTimeUtc ( ) . toMSecsSinceEpoch ( ) ;
//-- Handle flight start/end
quint64 end = start + 60 * 30 * 1000 ;
_updateFlightStartEndTime ( params . start_time , params . end_time ) ;
params . start_time = airmap : : from_milliseconds_since_epoch ( airmap : : milliseconds ( ( long long ) start ) ) ;
params . end_time = airmap : : from_milliseconds_since_epoch ( airmap : : milliseconds ( ( long long ) end ) ) ;
//-- Rules & Features
//-- Rules & Features
_updateRulesAndFeatures ( params . rulesets , params . features ) ;
_updateRulesAndFeatures ( params . rulesets , params . features ) ;
//-- Geometry: polygon
//-- Geometry: polygon
@ -530,7 +555,7 @@ AirMapFlightPlanManager::_updateFlightPlanOnTimer()
void
void
AirMapFlightPlanManager : : _updateFlightPlan ( bool interactive )
AirMapFlightPlanManager : : _updateFlightPlan ( bool interactive )
{
{
qCDebug ( AirMapManagerLog ) < < " Updating flight plan. State: " < < ( int ) _state ;
qCDebug ( AirMapManagerLog ) < < " Updating flight plan. State: " < < static_cast < int > ( _state ) ;
if ( _state ! = State : : Idle ) {
if ( _state ! = State : : Idle ) {
QTimer : : singleShot ( 100 , this , & AirMapFlightPlanManager : : _updateFlightPlanOnTimer ) ;
QTimer : : singleShot ( 100 , this , & AirMapFlightPlanManager : : _updateFlightPlanOnTimer ) ;
@ -541,22 +566,19 @@ AirMapFlightPlanManager::_updateFlightPlan(bool interactive)
return ;
return ;
}
}
qCDebug ( AirMapManagerLog ) < < " Takeoff: " < < _flight . takeoffCoord ;
qCDebug ( AirMapManagerLog ) < < " Bounding box: " < < _flight . bc . pointNW < < _flight . bc . pointSE ;
qCDebug ( AirMapManagerLog ) < < " Flight Start: " < < flightStartTime ( ) . toString ( ) ;
qCDebug ( AirMapManagerLog ) < < " Flight End: " < < flightEndTime ( ) . toString ( ) ;
//-- Update local instance of the flight plan
//-- Update local instance of the flight plan
_flightPlan . altitude_agl . max = _flight . maxAltitude ;
_flightPlan . altitude_agl . max = _flight . maxAltitude ;
_flightPlan . altitude_agl . min = 0.0f ;
_flightPlan . altitude_agl . min = 0.0f ;
_flightPlan . buffer = 2.f ;
_flightPlan . buffer = 2.f ;
_flightPlan . takeoff . latitude = _flight . takeoffCoord . latitude ( ) ;
_flightPlan . takeoff . latitude = static_cast < float > ( _flight . takeoffCoord . latitude ( ) ) ;
_flightPlan . takeoff . longitude = _flight . takeoffCoord . longitude ( ) ;
_flightPlan . takeoff . longitude = static_cast < float > ( _flight . takeoffCoord . longitude ( ) ) ;
//-- Rules & Features
//-- Rules & Features
_flightPlan . rulesets . clear ( ) ;
_flightPlan . rulesets . clear ( ) ;
_flightPlan . features . clear ( ) ;
_flightPlan . features . clear ( ) ;
//-- If interactive, we collect features otherwise we don't
//-- If interactive, we collect features otherwise we don't
_updateRulesAndFeatures ( _flightPlan . rulesets , _flightPlan . features , interactive ) ;
_updateRulesAndFeatures ( _flightPlan . rulesets , _flightPlan . features , interactive ) ;
//-- Handle flight start/end
_updateFlightStartEndTime ( _flightPlan . start_time , _flightPlan . end_time ) ;
//-- Geometry: polygon
//-- Geometry: polygon
Geometry : : Polygon polygon ;
Geometry : : Polygon polygon ;
for ( const auto & qcoord : _flight . coords ) {
for ( const auto & qcoord : _flight . coords ) {
@ -566,6 +588,12 @@ AirMapFlightPlanManager::_updateFlightPlan(bool interactive)
polygon . outer_ring . coordinates . push_back ( coord ) ;
polygon . outer_ring . coordinates . push_back ( coord ) ;
}
}
_flightPlan . geometry = Geometry ( polygon ) ;
_flightPlan . geometry = Geometry ( polygon ) ;
qCDebug ( AirMapManagerLog ) < < " Takeoff: " < < _flight . takeoffCoord ;
qCDebug ( AirMapManagerLog ) < < " Bounding box: " < < _flight . bc . pointNW < < _flight . bc . pointSE ;
qCDebug ( AirMapManagerLog ) < < " Flight Start: " < < flightStartTime ( ) . toString ( ) ;
qCDebug ( AirMapManagerLog ) < < " Flight End: " < < flightEndTime ( ) . toString ( ) ;
_state = State : : FlightUpdate ;
_state = State : : FlightUpdate ;
std : : weak_ptr < LifetimeChecker > isAlive ( _instance ) ;
std : : weak_ptr < LifetimeChecker > isAlive ( _instance ) ;
_shared . doRequestWithLogin ( [ this , isAlive ] ( const QString & login_token ) {
_shared . doRequestWithLogin ( [ this , isAlive ] ( const QString & login_token ) {
@ -647,13 +675,13 @@ AirMapFlightPlanManager::_pollBriefing()
_valid = false ;
_valid = false ;
_advisories . clearAndDeleteContents ( ) ;
_advisories . clearAndDeleteContents ( ) ;
const std : : vector < Status : : Advisory > advisories = briefing . airspace . advisories ;
const std : : vector < Status : : Advisory > advisories = briefing . airspace . advisories ;
_airspaceColor = ( AirspaceAdvisoryProvider : : AdvisoryColor ) ( int ) briefing . airspace . color ;
_airspaceColor = static_cast < AirspaceAdvisoryProvider : : AdvisoryColor > ( briefing . airspace . color ) ;
for ( const auto & advisory : advisories ) {
for ( const auto & advisory : advisories ) {
AirMapAdvisory * pAdvisory = new AirMapAdvisory ( this ) ;
AirMapAdvisory * pAdvisory = new AirMapAdvisory ( this ) ;
pAdvisory - > _id = QString : : fromStdString ( advisory . airspace . id ( ) ) ;
pAdvisory - > _id = QString : : fromStdString ( advisory . airspace . id ( ) ) ;
pAdvisory - > _name = QString : : fromStdString ( advisory . airspace . name ( ) ) ;
pAdvisory - > _name = QString : : fromStdString ( advisory . airspace . name ( ) ) ;
pAdvisory - > _type = ( AirspaceAdvisory : : AdvisoryType ) ( int ) advisory . airspace . type ( ) ;
pAdvisory - > _type = static_cast < AirspaceAdvisory : : AdvisoryType > ( advisory . airspace . type ( ) ) ;
pAdvisory - > _color = ( AirspaceAdvisoryProvider : : AdvisoryColor ) ( int ) advisory . color ;
pAdvisory - > _color = static_cast < AirspaceAdvisoryProvider : : AdvisoryColor > ( advisory . color ) ;
_advisories . append ( pAdvisory ) ;
_advisories . append ( pAdvisory ) ;
qCDebug ( AirMapManagerLog ) < < " Adding briefing advisory " < < pAdvisory - > name ( ) ;
qCDebug ( AirMapManagerLog ) < < " Adding briefing advisory " < < pAdvisory - > name ( ) ;
}
}
@ -682,12 +710,18 @@ AirMapFlightPlanManager::_pollBriefing()
if ( rule . status = = RuleSet : : Rule : : Status : : missing_info ) {
if ( rule . status = = RuleSet : : Rule : : Status : : missing_info ) {
if ( ! _findBriefFeature ( pFeature - > name ( ) ) ) {
if ( ! _findBriefFeature ( pFeature - > name ( ) ) ) {
_briefFeatures . append ( pFeature ) ;
_briefFeatures . append ( pFeature ) ;
_importantFeatures . append ( pFeature ) ;
qCDebug ( AirMapManagerLog ) < < " Adding briefing feature " < < pFeature - > name ( ) < < pFeature - > description ( ) < < pFeature - > type ( ) ;
qCDebug ( AirMapManagerLog ) < < " Adding briefing feature " < < pFeature - > name ( ) < < pFeature - > description ( ) < < pFeature - > type ( ) ;
} else {
} else {
qCDebug ( AirMapManagerLog ) < < " Skipping briefing feature duplicate " < < pFeature - > name ( ) < < pFeature - > description ( ) < < pFeature - > type ( ) ;
qCDebug ( AirMapManagerLog ) < < " Skipping briefing feature duplicate " < < pFeature - > name ( ) < < pFeature - > description ( ) < < pFeature - > type ( ) ;
}
}
}
}
}
}
for ( const auto & feature : _importantFeatures ) {
if ( ! _findBriefFeature ( feature - > name ( ) ) ) {
_briefFeatures . append ( feature ) ;
}
}
pRuleSet - > _rules . append ( pRule ) ;
pRuleSet - > _rules . append ( pRule ) ;
//-- Rules separated by status for presentation
//-- Rules separated by status for presentation
switch ( rule . status ) {
switch ( rule . status ) {
@ -734,10 +768,6 @@ AirMapFlightPlanManager::_pollBriefing()
case Evaluation : : Authorization : : Status : : pending :
case Evaluation : : Authorization : : Status : : pending :
pending = true ;
pending = true ;
break ;
break ;
//-- If we don't know, accept it
default :
accepted = true ;
break ;
}
}
}
}
if ( briefing . evaluation . authorizations . size ( ) = = 0 ) {
if ( briefing . evaluation . authorizations . size ( ) = = 0 ) {