ADD: updated order handling
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
#include "DirectCommunicationServer.hpp"
|
#include "DirectCommunicationServer.hpp"
|
||||||
#include "Entities/Movement.hpp"
|
#include "Entities/Movement.hpp"
|
||||||
#include "Orders/MoveOrder.hpp"
|
#include "Orders/MoveOrder.hpp"
|
||||||
|
#include "Orders/Order.hpp"
|
||||||
#include "SimCore/Messages/Control.hpp"
|
#include "SimCore/Messages/Control.hpp"
|
||||||
#include "SimCore/Messages/SimTrack.hpp"
|
#include "SimCore/Messages/SimTrack.hpp"
|
||||||
#include "SimCore/UtilFunctions.hpp"
|
#include "SimCore/UtilFunctions.hpp"
|
||||||
@@ -235,20 +236,48 @@ namespace Entities
|
|||||||
{
|
{
|
||||||
case WHISPER::MsgType::ORDER:
|
case WHISPER::MsgType::ORDER:
|
||||||
{
|
{
|
||||||
|
Orders::OrderType OrderType = Orders::Order::getType(whisperMsg);
|
||||||
auto MoveOrder = Orders::MoveOrder::unpack(whisperMsg);
|
switch (OrderType) {
|
||||||
if (MoveOrder != nullptr)
|
case Orders::UNKNOWN :
|
||||||
{
|
{
|
||||||
LOG_S(INFO)<< "Moveorder Received";
|
break;
|
||||||
if(MoveOrder->Speed.isValid()) this->setSpeed(MoveOrder->Speed.getValue());
|
}
|
||||||
if(MoveOrder->Course.isValid()) this->setCourse(MoveOrder->Course.getValue());
|
case Orders::HOLD_ORDER :
|
||||||
if(MoveOrder->getPosition().isValid())
|
{
|
||||||
{
|
this->setSpeed(0);
|
||||||
LOG_S(INFO)<<"New Position received";
|
break;
|
||||||
|
}
|
||||||
|
case Orders::MOVE_ORDER :
|
||||||
|
{
|
||||||
|
auto MoveOrder = Orders::MoveOrder::unpack(whisperMsg);
|
||||||
|
if (MoveOrder != nullptr)
|
||||||
|
{
|
||||||
|
LOG_S(INFO)<< "Moveorder Received";
|
||||||
|
if(MoveOrder->Speed.isValid()) this->setSpeed(MoveOrder->Speed.getValue());
|
||||||
|
if(MoveOrder->Course.isValid()) this->setCourse(MoveOrder->Course.getValue());
|
||||||
|
if(MoveOrder->getPosition().isValid())
|
||||||
|
{
|
||||||
|
LOG_S(INFO)<<"New Position received";
|
||||||
|
|
||||||
this->setPosition(MoveOrder->getPosition());
|
this->setPosition(MoveOrder->getPosition());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case Orders::ENGAGE_ORDER:
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
case Orders::SYSTEM_STATE_ORDER:
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case Orders::TRACKLIST_ORDER :
|
||||||
|
{
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -146,7 +146,15 @@ void Sensor::HandleOrders(WHISPER::Message WHmsg)
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case Orders::TRACKLIST_ORDER:
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
break;
|
||||||
case Orders::UNKNOWN:
|
case Orders::UNKNOWN:
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user