Newer
Older
//
// Created by philipp on 12.02.18.
//
#ifndef CAR_PLATOONCONTROLLER_H
#define CAR_PLATOONCONTROLLER_H
#include "PlatoonProtocolLib/VehicleFacade.h"
#include "PC2CarLib/CommandReceiver.h"
#include "EgoMotion.h"
PlatoonController(ros::NodeHandle & nh,
platoonProtocol::VehicleFacade & c2c,
void setCruiseControllerNotify(const Callback & cruiseControllerNotify)
{ this->cruiseControllerNotify = cruiseControllerNotify; }
float getDesSpeed()
{ return desSpeed.get(); }
PlatoonState getCurrState() const
{ return currState; }
networking::time::TimedValue<platoonProtocol::PlatoonConfig> getPlatoonConfig()
{ return platoonConfig.getNonAtomicCopy(); }
std::atomic<PlatoonState> currState{PlatoonState::ACC};
networking::time::TimedAtomicValue<platoonProtocol::PlatoonConfig> platoonConfig;
// void updateC2cConfig(); // once C2C returns TimedValues
networking::time::TimedValue<platoonProtocol::PlatoonSpeed> PS{0.0f};
networking::time::TimedValue<platoonProtocol::InnerPlatoonDistance> IPD{0.0f};