FIX: fixed bugs in MoveOrder

This commit is contained in:
hwinkel
2023-07-07 09:30:37 +02:00
parent 31f21485e0
commit 401af8cb61

View File

@@ -40,14 +40,14 @@ namespace Orders
{
pos_ = pos;
}
SimCore::Position MoveOrder::getPosition()
{
return pos_;
}
SimCore::Position MoveOrder::getPosition(){return pos_;}
WHISPER::Message MoveOrder::buildMessage()
{
WHISPER::Message msg = WHISPER::Message(getOwnID().getUUID(), WHISPER::MsgTopics::COMMANDS , WHISPER::MsgType::COMMAND , srcType);
@@ -61,19 +61,23 @@ namespace Orders
MoveOrder.mutable_geocentricposition()->set_z(pos_.getGeocentricPos().z());
}
if (Speed.getValidity() == true) {
if (Speed.isValid() == true) {
MoveOrder.set_speed(Speed.getValue());
}
if (Course.getValidity() == true) {
if (Course.isValid() == true) {
MoveOrder.set_course(Course.getValue());
}
if (Speed.isValid() == true) {
MoveOrder.set_speed(Speed.getValue());
}
if (Course.isValid() == true) {
MoveOrder.set_course(Course.getValue());
}
if (StartTime.getValidity() == true) {
if (StartTime.isValid() == true) {
MoveOrder.mutable_startingtime()->set_seconds(StartTime.getValue());
}
LOG_S(INFO)<<"ordered speed:" << MoveOrder.speed();
auto anyOrder = google::protobuf::Any();
anyOrder.PackFrom(MoveOrder);
@@ -95,7 +99,7 @@ namespace Orders
std::unique_ptr<MoveOrder> MoveOrder::unpack(WHISPER::Message msg)
{
{
if(msg.msgType_ == WHISPER::MsgType::COMMAND)
{
@@ -114,34 +118,28 @@ namespace Orders
auto MoveOrderObj = std::make_unique<MoveOrder>(OrderID,(WHISPER::SourceType)msg.sourceType_);
if (moveOrder.has_geocentricposition()) MoveOrderObj->setPosition(SimCore::Position(moveOrder.geocentricposition().x(),moveOrder.geocentricposition().y(),moveOrder.geocentricposition().z()));
if (moveOrder.has_speed()) MoveOrderObj->Speed.setValue(moveOrder.speed());
if (moveOrder.has_course()) MoveOrderObj->Course.setValue(moveOrder.course());
if (moveOrder.has_startingtime()) MoveOrderObj->Course.setValue(moveOrder.mutable_startingtime()->seconds());
return std::move(MoveOrderObj);
return MoveOrderObj;
}
}
}
return nullptr;
}
std::unique_ptr<MoveOrder> MoveOrder::unpack(std::string msg)
{
if (std::empty(msg) == false && msg != "NULL")
if (std::empty(msg) == false && msg != "NULL")
{
WHISPER::Message whisperMessage(msg);
return std::move(unpack(whisperMessage));
return unpack(whisperMessage);
}
return nullptr;
}
}