|
@@ -18,6 +18,7 @@ extern std::string gstrmemdecition;
|
|
|
extern std::string gstrmembrainstate;
|
|
|
extern iv::Ivlog * givlog;
|
|
|
extern std::string gstrmemchassis;
|
|
|
+extern std::string gstrmembraincarstate;
|
|
|
|
|
|
#define LOG_ENABLE
|
|
|
|
|
@@ -112,6 +113,7 @@ iv::decition::BrainDecition::BrainDecition()
|
|
|
mpvbox = iv::modulecomm::RegisterRecv("vbox",iv::decition::ListenVbox);
|
|
|
|
|
|
mpaVechicleState = iv::modulecomm::RegisterSend(gstrmembrainstate.data(),10000,10);
|
|
|
+ mpaCarstate= iv::modulecomm::RegisterSend(gstrmembraincarstate.data(),10000,10);
|
|
|
|
|
|
mpfusion = iv::modulecomm::RegisterRecv("li_ra_fusion",ListenFusion);
|
|
|
|
|
@@ -776,8 +778,7 @@ void iv::decition::BrainDecition::run() {
|
|
|
mMutexMap.lock();
|
|
|
decition_gps = decitionGps00->getDecideFromGPS(*gps_data_, navigation_data, templidar,*lidar_per,trafficLight); // my dicition=============================
|
|
|
// free(templidar);
|
|
|
- mMutexMap.unlock();
|
|
|
-
|
|
|
+ mMutexMap.unlock();
|
|
|
if(mbUseExternMPC)
|
|
|
{
|
|
|
fanya::GPS_INS xgpsins;
|
|
@@ -833,6 +834,15 @@ void iv::decition::BrainDecition::run() {
|
|
|
// decitionExecuter->executeDecition(decition_gps);
|
|
|
ShareDecition(decition_gps);
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+ iv::brain::carstate car_xbs;
|
|
|
+ car_xbs.set_mstate(ServiceCarStatus.mvehState);
|
|
|
+ car_xbs.set_mavoidx(ServiceCarStatus.mavoidX);
|
|
|
+ car_xbs.set_mobsdistance(ServiceCarStatus.mObsDistance);
|
|
|
+ car_xbs.set_mobsspeed(ServiceCarStatus.mObsSpeed);
|
|
|
+ ShareBraincarstate(car_xbs);
|
|
|
+
|
|
|
givlog->debug("acc is %f brake is %f wheel is %f",
|
|
|
decition_gps->accelerator,decition_gps->brake,
|
|
|
decition_gps->wheel_angle);
|
|
@@ -1281,6 +1291,24 @@ void iv::decition::BrainDecition::ShareBrainstate(iv::brain::brainstate xbs)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+void iv::decition::BrainDecition::ShareBraincarstate(iv::brain::carstate xbs)
|
|
|
+{
|
|
|
+ int nsize = xbs.ByteSize();
|
|
|
+ char * str = new char[nsize];
|
|
|
+ std::shared_ptr<char> pstr;
|
|
|
+ pstr.reset(str);
|
|
|
+ if(xbs.SerializeToArray(str,nsize))
|
|
|
+ {
|
|
|
+ iv::modulecomm::ModuleSendMsg(mpaCarstate,str,nsize);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ std::cout<<"iv::decition::BrainDecition::ShareBrainstate serialize error."<<std::endl;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
void iv::decition::BrainDecition::UpdateHMI(const char *pdata, const int ndatasize)
|
|
|
{
|
|
|
if(ndatasize < sizeof(iv::hmi::HMIBasic))return;
|