|
@@ -23,6 +23,7 @@ FSMUnit::FSMUnit(void)
|
|
|
QObject::connect(this,&FSMUnit::refreshFSMStatus,this,&FSMUnit::refreshFSMStatus_Slot);
|
|
|
QObject::connect(&skipCMDSendTimer,&QTimer::timeout,this,&FSMUnit::skipCMDSend_Timeout);
|
|
|
QObject::connect(&arriveCheckLoopTimer,&QTimer::timeout,this,&FSMUnit::arriveCheckLoop_Timeout);
|
|
|
+ QObject::connect(this,&FSMUnit::sendPathPlanRequest,this,&FSMUnit::sendPathPlanRequest_Slot);
|
|
|
if(skipCMDSendTimer.isActive() == false)skipCMDSendTimer.start(skipCMDSendInterval);
|
|
|
if(arriveCheckLoopTimer.isActive() == false)arriveCheckLoopTimer.start(100);
|
|
|
}
|
|
@@ -196,10 +197,12 @@ void FSMUnit::ListenBrainStateMsg(const char * strdata,const unsigned int nSize,
|
|
|
|
|
|
void FSMUnit::navagationSwitchChanged_Slot(bool status)
|
|
|
{
|
|
|
- if(status)
|
|
|
+ if(status == true && FSMState == 0)
|
|
|
missionCMD = iv::brain::MissionCMD::MISSION_START;
|
|
|
- else
|
|
|
+ else if(status == false && FSMState == 1)
|
|
|
missionCMD = iv::brain::MissionCMD::MISSION_CANCEL;
|
|
|
+ else
|
|
|
+ missionCMD = iv::brain::MissionCMD::MISSION_RESERVED;
|
|
|
}
|
|
|
|
|
|
void FSMUnit::useStatusCMDChanged_Slot(bool status)
|
|
@@ -341,6 +344,7 @@ void FSMUnit::arriveCheckLoop_Timeout(void)
|
|
|
{
|
|
|
if(FSMState == 4) ///< 4返程
|
|
|
{
|
|
|
+// std::cout<<"status is return wait station"<<std::endl;
|
|
|
if(currentDestination.latitude != waitingStation.latitude || currentDestination.longitude != waitingStation.longitude)
|
|
|
{
|
|
|
currentDestination.latitude = waitingStation.latitude;
|
|
@@ -394,6 +398,6 @@ void FSMUnit::sendPathPlanRequest_Slot(double latitude,double longitude)
|
|
|
xodrDest.flat = latitude;
|
|
|
xodrDest.lane = 1;
|
|
|
std::cout<<"current destination: "<<std::setprecision(12)<<longitude<<","<<latitude<<std::endl;
|
|
|
-
|
|
|
+ std::cout<<"send a path request"<<std::endl;
|
|
|
iv::modulecomm::ModuleSendMsg(shmXodrRequest.mpa,(char *)&xodrDest,sizeof(xodrobj)); ///< send request msg
|
|
|
}
|