|
@@ -76,6 +76,34 @@ std::vector<SignalPackValue> mvectorADSONEBOX1;
|
|
|
std::vector<SignalPackValue> mvectorADSVCU1;
|
|
|
|
|
|
|
|
|
+double ADS_1_DrvCtrlReq = 0.0;
|
|
|
+double ADS_1_CtrlReqMod = 0.0;
|
|
|
+double ADS_1_DrvTarTqVld = 0.0;
|
|
|
+double ADS_1_DrvTarTqEnable = 0.0;
|
|
|
+double ADS_1_DrvTarTq = 0.0;
|
|
|
+double ADS_1_TarGearReq = 0.0;
|
|
|
+double ADS_1_TarGearReqVld = 0.0;
|
|
|
+double ADS_1_GearCtrlEnable = 1.0;
|
|
|
+
|
|
|
+double ADS_1_SteerAgReq = 0.0;
|
|
|
+double ADS_1_SteerAgVld = 0.0;
|
|
|
+double ADS_1_SteerPilotAgEna = 0.0;
|
|
|
+
|
|
|
+double gfWheelReq = 0.0;
|
|
|
+double gfTorqueReq = 0.0;
|
|
|
+double gfBrakeReq = 0.0;
|
|
|
+
|
|
|
+double ADS_1_PilotCtrlRepSta = 0.0;
|
|
|
+double ADS_1_PilotParkCtrlType = 0.0;
|
|
|
+double ADS_1_PilotParkBrkDecTar = 0.0;
|
|
|
+double ADS_1_PilotParkCtrlRepMod = 0.0;
|
|
|
+double ADS_1_PilotParkBrkDecTarVld = 0.0;
|
|
|
+double ADS_1_PilotParkBrkDecTarEnable = 0.0;
|
|
|
+double ADS_1_PilotParkDec2StpReq = 0.0;
|
|
|
+double ADS_1_PilotParkDriOffReq = 0.0;
|
|
|
+double ADS_1_ParkCtrlMod = 0.0;
|
|
|
+
|
|
|
+
|
|
|
|
|
|
void set_EPS1_signal(std::string strsigname,double value){
|
|
|
gpsterraes->set_EPS1_signal(strsigname,value);
|
|
@@ -98,42 +126,61 @@ void ExecSend();
|
|
|
void executeDecition(const iv::brain::decition &decition)
|
|
|
{
|
|
|
|
|
|
+ if(decition.brake()<(-0.0001))
|
|
|
+ {
|
|
|
+ ADS_1_DrvTarTq = 0.0;
|
|
|
+
|
|
|
+ ADS_1_ParkCtrlMod = 1.0;
|
|
|
+ ADS_1_PilotParkDriOffReq = 0.0;
|
|
|
+ ADS_1_PilotParkDec2StpReq = 1.0;
|
|
|
+ ADS_1_PilotParkBrkDecTar = decition.brake();
|
|
|
+ ADS_1_PilotParkBrkDecTarVld = 1.0;
|
|
|
+ ADS_1_PilotParkCtrlType = 1.0;
|
|
|
+ ADS_1_PilotParkBrkDecTarEnable = 1.0;
|
|
|
+ }
|
|
|
+
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if(fabs(gfVehSpd) < 0.1)
|
|
|
+ {
|
|
|
+ ADS_1_PilotParkDriOffReq = 1.0;
|
|
|
+ }
|
|
|
+
|
|
|
+ ADS_1_DrvTarTq = decition.torque();
|
|
|
+ if(ADS_1_DrvTarTq > 100)ADS_1_DrvTarTq =100.0;
|
|
|
|
|
|
+ ADS_1_PilotParkDec2StpReq = 0.0;
|
|
|
+ ADS_1_PilotParkBrkDecTarEnable = 0.0;
|
|
|
+ ADS_1_PilotParkBrkDecTarVld = 0.0;
|
|
|
+ ADS_1_PilotParkBrkDecTar = 0.0;
|
|
|
+
|
|
|
+ ADS_1_SteerAgReq = decition.wheelangle();
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
|
void Activate()
|
|
|
{
|
|
|
- std::this_thread::sleep_for(std::chrono::milliseconds(100));
|
|
|
- iv::brain::decition xdecition;
|
|
|
- xdecition.set_brake(0.0);
|
|
|
- xdecition.set_torque(0.0);
|
|
|
// for(int j=0;j<100000;j++)
|
|
|
// {
|
|
|
- std::cout<<" run "<<std::endl;
|
|
|
+ std::cout<<" activate "<<std::endl;
|
|
|
for(int i = 0; i < 3; i++){
|
|
|
- xdecition.set_wheelangle(0.0);
|
|
|
- xdecition.set_angle_mode(0);
|
|
|
- xdecition.set_angle_active(0);
|
|
|
- xdecition.set_acc_active(0);
|
|
|
- xdecition.set_brake_active(0);
|
|
|
- // xdecition.set_brake_type(0);
|
|
|
- xdecition.set_auto_mode(0);
|
|
|
- gnState = 0;
|
|
|
- executeDecition(xdecition);
|
|
|
- ExecSend();
|
|
|
- std::this_thread::sleep_for(std::chrono::milliseconds(10));
|
|
|
- }
|
|
|
- for(int i = 0; i < 3; i++){
|
|
|
- xdecition.set_wheelangle(0.0);
|
|
|
- xdecition.set_angle_mode(1);
|
|
|
- xdecition.set_angle_active(1);
|
|
|
- xdecition.set_acc_active(1);
|
|
|
- xdecition.set_brake_active(1);
|
|
|
- // xdecition.set_brake_type(1);
|
|
|
- xdecition.set_auto_mode(3);
|
|
|
- gnState = 1;
|
|
|
- executeDecition(xdecition);
|
|
|
+ ADS_1_DrvCtrlReq = 1.0;
|
|
|
+ ADS_1_CtrlReqMod = 2.0; //1 Pilot 2 Park
|
|
|
+ ADS_1_DrvTarTqVld = 1.0;
|
|
|
+ ADS_1_DrvTarTqEnable = 1.0;
|
|
|
+ ADS_1_DrvTarTq = 0.0;
|
|
|
+ ADS_1_TarGearReq = 4.0; //1 P 4 D
|
|
|
+ ADS_1_TarGearReqVld = 1.0;
|
|
|
+ ADS_1_GearCtrlEnable = 0.0;
|
|
|
+
|
|
|
+ ADS_1_SteerAgReq = gfWheelReq;
|
|
|
+ ADS_1_SteerAgVld = 1.0;
|
|
|
+ ADS_1_SteerPilotAgEna = 1.0;
|
|
|
+
|
|
|
+ ADS_1_PilotParkDec2StpReq = 1.0;
|
|
|
+ ADS_1_ParkCtrlMod = 1.0;
|
|
|
+
|
|
|
ExecSend();
|
|
|
std::this_thread::sleep_for(std::chrono::milliseconds(10));
|
|
|
}
|
|
@@ -142,33 +189,43 @@ void Activate()
|
|
|
|
|
|
void UnAcitvate()
|
|
|
{
|
|
|
- iv::brain::decition xdecition;
|
|
|
-
|
|
|
- xdecition.set_brake(0.0);
|
|
|
- xdecition.set_torque(0.0);
|
|
|
- for(int i = 0; i < 3; i++){
|
|
|
- xdecition.set_wheelangle(0);
|
|
|
- xdecition.set_angle_mode(1);
|
|
|
- xdecition.set_angle_active(1);
|
|
|
- xdecition.set_acc_active(1);
|
|
|
- xdecition.set_brake_active(1);
|
|
|
- // xdecition.set_brake_type(1);
|
|
|
- xdecition.set_auto_mode(3);
|
|
|
- gnState = 1;
|
|
|
- executeDecition(xdecition);
|
|
|
- ExecSend();
|
|
|
- std::this_thread::sleep_for(std::chrono::milliseconds(10));
|
|
|
+ if(fabs(gfVehSpd)<0.1)
|
|
|
+ {
|
|
|
+ for(int i = 0; i < 3; i++){
|
|
|
+ ADS_1_DrvCtrlReq = 1.0;
|
|
|
+ ADS_1_CtrlReqMod = 2.0;
|
|
|
+ ADS_1_DrvTarTqVld = 1.0;
|
|
|
+ ADS_1_DrvTarTqEnable = 1.0;
|
|
|
+ ADS_1_DrvTarTq = 0.0;
|
|
|
+ ADS_1_TarGearReq = 1.0;
|
|
|
+ ADS_1_TarGearReqVld = 1.0;
|
|
|
+ ADS_1_GearCtrlEnable = 0.0;
|
|
|
+
|
|
|
+ ADS_1_SteerAgReq = 0.0;
|
|
|
+ ADS_1_SteerAgVld = 1.0;
|
|
|
+ ADS_1_SteerPilotAgEna = 1.0;
|
|
|
+
|
|
|
+ ExecSend();
|
|
|
+ std::this_thread::sleep_for(std::chrono::milliseconds(10));
|
|
|
+ }
|
|
|
}
|
|
|
for(int i = 0; i < 3; i++){
|
|
|
- xdecition.set_wheelangle(0);
|
|
|
- xdecition.set_angle_mode(0);
|
|
|
- xdecition.set_angle_active(0);
|
|
|
- xdecition.set_acc_active(0);
|
|
|
- xdecition.set_brake_active(0);
|
|
|
- // xdecition.set_brake_type(0);
|
|
|
- gnState = 0;
|
|
|
- xdecition.set_auto_mode(0);
|
|
|
- executeDecition(xdecition);
|
|
|
+ ADS_1_DrvCtrlReq = 0.0;
|
|
|
+ ADS_1_CtrlReqMod = 0.0;
|
|
|
+ ADS_1_DrvTarTqVld = 0.0;
|
|
|
+ ADS_1_DrvTarTqEnable = 0.0;
|
|
|
+ ADS_1_DrvTarTq = 0.0;
|
|
|
+ ADS_1_TarGearReq = 1.0;
|
|
|
+ ADS_1_TarGearReqVld = 0.0;
|
|
|
+ ADS_1_GearCtrlEnable = 1.0;
|
|
|
+
|
|
|
+ ADS_1_SteerAgReq = 0.0;
|
|
|
+ ADS_1_SteerAgVld = 0.0;
|
|
|
+ ADS_1_SteerPilotAgEna = 0.0;
|
|
|
+
|
|
|
+ ADS_1_PilotParkDec2StpReq = 0.0;
|
|
|
+ ADS_1_ParkCtrlMod = 0.0;
|
|
|
+
|
|
|
ExecSend();
|
|
|
std::this_thread::sleep_for(std::chrono::milliseconds(10));
|
|
|
}
|
|
@@ -249,8 +306,63 @@ void ListenDeciton(const char * strdata,const unsigned int nSize,const unsigned
|
|
|
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+void PrepareMsg()
|
|
|
+{
|
|
|
+ static int rollcouter = 0;
|
|
|
+ // std::cout<<" roll count:: "<<rollcouter<<std::endl;
|
|
|
+
|
|
|
+ set_EPS1_signal("ADS_1_RollgCntr1",rollcouter);
|
|
|
+ set_EPS1_signal("ADS_1_Resd1",0.0);
|
|
|
+ set_EPS1_signal("ADS_1_SteerAgReq",ADS_1_SteerAgReq);
|
|
|
+ set_EPS1_signal("ADS_1_SteerAgVld",ADS_1_SteerAgVld);
|
|
|
+ set_EPS1_signal("ADS_1_SteerPilotAgEna",ADS_1_SteerPilotAgEna);
|
|
|
+ set_EPS1_signal("ADS_1_RollgCntr2",rollcouter);
|
|
|
+ set_EPS1_signal("ADS_1_Resd2",0.0);
|
|
|
+ set_EPS1_signal("ADS_1_SteerTqEna",1.0);
|
|
|
+ set_EPS1_signal("ADS_1_LdwWarningCmd",0.0);
|
|
|
+ set_EPS1_signal("ADS_1_LdwWarningCmdVld",2.0);
|
|
|
+ set_EPS1_signal("ADS_1_SteerMaxTqReq",10.0);
|
|
|
+ set_EPS1_signal("ADS_1_SteerMinTqReq",1.0);
|
|
|
+ set_EPS1_signal("ADS_1_ADSHealthSts",1.0);
|
|
|
+ set_EPS1_signal("CutOutFreshvalues_2CB_S",1.0);
|
|
|
+ set_EPS1_signal("CutOutMAC_2CB_S",1.0);
|
|
|
+ gpsterraes->GetEPS1Data(ADS_EPS_1);
|
|
|
+
|
|
|
+ set_VCU1_signal("ADS_1_RollgCntr1",rollcouter);
|
|
|
+ set_VCU1_signal("ADS_1_Resd1",0);
|
|
|
+ set_VCU1_signal("ADS_1_DrvTarTq",ADS_1_DrvTarTq);
|
|
|
+ set_VCU1_signal("ADS_1_DrvTarTqVld",ADS_1_DrvTarTqVld);
|
|
|
+ set_VCU1_signal("ADS_1_DrvCtrlReq",ADS_1_DrvCtrlReq);
|
|
|
+ set_VCU1_signal("ADS_1_CtrlReqMod",ADS_1_CtrlReqMod);
|
|
|
+ set_VCU1_signal("ADS_1_DrvTarTqEnable",ADS_1_DrvTarTqEnable);
|
|
|
+ set_VCU1_signal("ADS_1_RollgCntr2",rollcouter);
|
|
|
+ set_VCU1_signal("ADS_1_Resd2",0);
|
|
|
+ set_VCU1_signal("ADS_1_TarGearReq",ADS_1_TarGearReq);
|
|
|
+ set_VCU1_signal("ADS_1_TarGearReqVld",ADS_1_TarGearReqVld);
|
|
|
+ set_VCU1_signal("ADS_1_GearCtrlEnable",ADS_1_GearCtrlEnable);
|
|
|
+ gpsterraes->GetVCU1Data(ADS_VCU_1);
|
|
|
+
|
|
|
+ set_ONEBOX1_signal("ADS_1_RollgCntr1",rollcouter);
|
|
|
+ set_ONEBOX1_signal("ADS_1_Resd1",0);
|
|
|
+ set_ONEBOX1_signal("ADS_1_PilotCtrlRepSta",ADS_1_PilotCtrlRepSta);
|
|
|
+ set_ONEBOX1_signal("ADS_1_PilotParkCtrlType",ADS_1_PilotParkCtrlType);
|
|
|
+ set_ONEBOX1_signal("ADS_1_PilotParkBrkDecTar",ADS_1_PilotParkBrkDecTar);
|
|
|
+ set_ONEBOX1_signal("ADS_1_PilotParkCtrlRepMod",ADS_1_PilotParkCtrlRepMod);
|
|
|
+ set_ONEBOX1_signal("ADS_1_PilotParkBrkDecTarVld",ADS_1_PilotParkBrkDecTarVld);
|
|
|
+ set_ONEBOX1_signal("ADS_1_PilotParkBrkDecTarEnable",ADS_1_PilotParkBrkDecTarEnable);
|
|
|
+ set_ONEBOX1_signal("ADS_1_PilotParkDec2StpReq",ADS_1_PilotParkDec2StpReq);
|
|
|
+ set_ONEBOX1_signal("ADS_1_PilotParkDriOffReq",ADS_1_PilotParkDriOffReq);
|
|
|
+ set_ONEBOX1_signal("ADS_1_ParkCtrlMod",ADS_1_ParkCtrlMod);
|
|
|
+ gpsterraes->GetONEBOX1Data(ADS_ONEBOX_1);
|
|
|
+
|
|
|
+
|
|
|
+ rollcouter++;
|
|
|
+}
|
|
|
+
|
|
|
void ExecSend()
|
|
|
{
|
|
|
+ PrepareMsg();
|
|
|
static int nCount = 0;
|
|
|
nCount++;
|
|
|
iv::can::canmsg xmsg;
|
|
@@ -284,16 +396,16 @@ void ExecSend()
|
|
|
xraw.set_bext(false);
|
|
|
xraw.set_bremote(false);
|
|
|
xraw.set_len(24);
|
|
|
- // iv::can::canraw * pxraw159 = xmsg.add_rawmsg();
|
|
|
- // pxraw159->CopyFrom(xraw);
|
|
|
+ iv::can::canraw * pxraw159 = xmsg.add_rawmsg();
|
|
|
+ pxraw159->CopyFrom(xraw);
|
|
|
|
|
|
xraw.set_id(0x167);
|
|
|
xraw.set_data(ADS_VCU_1,24);
|
|
|
xraw.set_bext(false);
|
|
|
xraw.set_bremote(false);
|
|
|
xraw.set_len(24);
|
|
|
- // iv::can::canraw * pxraw167 = xmsg.add_rawmsg();
|
|
|
- // pxraw167->CopyFrom(xraw);
|
|
|
+ iv::can::canraw * pxraw167 = xmsg.add_rawmsg();
|
|
|
+ pxraw167->CopyFrom(xraw);
|
|
|
|
|
|
|
|
|
xmsg.set_channel(0);
|
|
@@ -336,6 +448,7 @@ void SendEPS1()
|
|
|
{
|
|
|
static int rollcouter = 0;
|
|
|
// std::cout<<" roll count:: "<<rollcouter<<std::endl;
|
|
|
+
|
|
|
set_EPS1_signal("ADS_1_RollgCntr1",rollcouter);
|
|
|
set_EPS1_signal("ADS_1_Resd1",0.0);
|
|
|
gpsterraes->GetEPS1Data(ADS_EPS_1);
|
|
@@ -544,8 +657,8 @@ int main(int argc, char *argv[])
|
|
|
EnableTorqueBrakeTest();
|
|
|
#endif
|
|
|
|
|
|
- testes();
|
|
|
- return 0;
|
|
|
+ // testes();
|
|
|
+ // return 0;
|
|
|
|
|
|
std::thread xthread(sendthread);
|
|
|
|