|
@@ -146,29 +146,33 @@ void MainWindow::threaddata()
|
|
|
a07_ecu_30_a_t can30a;
|
|
|
a07_ecu_2_ca_t can2ca;
|
|
|
|
|
|
+ static int xieya = 50;
|
|
|
+
|
|
|
|
|
|
while(mbthreaddatarun)
|
|
|
{
|
|
|
- can1b2.acc_lat_ang_req = mfWheelAngle;
|
|
|
- can1b2.acc_motor_torque_max_limit_request = 10.0;
|
|
|
- can1b2.acc_motor_torque_min_limit_request = -10.0;
|
|
|
+
|
|
|
+ can1b2.acc_lat_ang_req = a07_ecu_1_b2_acc_lat_ang_req_encode(mfWheelAngle);;
|
|
|
+ can1b2.acc_motor_torque_max_limit_request = a07_ecu_1_b2_acc_motor_torque_max_limit_request_encode(10.0);
|
|
|
+ can1b2.acc_motor_torque_min_limit_request = a07_ecu_1_b2_acc_motor_torque_min_limit_request_encode(-10.0);
|
|
|
+
|
|
|
if(mbchassisactive)
|
|
|
{
|
|
|
- can1b2.acc_lat_ang_req_active = 1;
|
|
|
+ can1b2.acc_lat_ang_req_active = a07_ecu_1_b2_acc_lat_ang_req_active_encode(1.0);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- can1b2.acc_lat_ang_req_active = 0;
|
|
|
+ can1b2.acc_lat_ang_req_active = a07_ecu_1_b2_acc_lat_ang_req_active_encode(0.0);
|
|
|
}
|
|
|
|
|
|
- can23c.acc_acc_trq_req = mfTorque;
|
|
|
+ can23c.acc_acc_trq_req = a07_ecu_23_c_acc_acc_trq_req_encode(0);
|
|
|
if(mbchassisactive)
|
|
|
{
|
|
|
- can23c.acc_acc_trq_req = 1;
|
|
|
+ can23c.acc_acc_trq_req = a07_ecu_23_c_acc_acc_trq_req_encode(1);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- can23c.acc_acc_trq_req = 0;
|
|
|
+ can23c.acc_acc_trq_req = a07_ecu_23_c_acc_acc_trq_req_encode(0);
|
|
|
}
|
|
|
|
|
|
if(mbUseAPA)
|
|
@@ -217,10 +221,10 @@ void MainWindow::threaddata()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- can23f.apa_steering_angle_req_protection = gnAPAstate;
|
|
|
- can23f.apa_error_status = 0;
|
|
|
- can23f.apa_steering_angle_req = mfWheelAngle;
|
|
|
- can1b2.acc_lat_ang_req_active = 0;
|
|
|
+ can23f.apa_steering_angle_req_protection = a07_ecu_23_f_apa_steering_angle_req_protection_encode(gnAPAstate);
|
|
|
+ can23f.apa_error_status = a07_ecu_23_f_apa_error_status_encode(0);
|
|
|
+ can23f.apa_steering_angle_req = a07_ecu_23_f_apa_steering_angle_req_encode(mfWheelAngle);
|
|
|
+ can1b2.acc_lat_ang_req_active = a07_ecu_1_b2_acc_lat_ang_req_active_encode(0);
|
|
|
|
|
|
|
|
|
|
|
@@ -228,12 +232,50 @@ void MainWindow::threaddata()
|
|
|
else
|
|
|
{
|
|
|
gnAPAstate = 0;
|
|
|
- can23f.apa_steering_angle_req_protection = 0;
|
|
|
- can23f.apa_error_status = 0;
|
|
|
- can23f.apa_steering_angle_req = mfWheelAngle;
|
|
|
+ can23f.apa_steering_angle_req_protection = a07_ecu_23_f_apa_steering_angle_req_protection_encode(0);
|
|
|
+ can23f.apa_error_status = a07_ecu_23_f_apa_error_status_encode(0.0);
|
|
|
+ can23f.apa_steering_angle_req = a07_ecu_23_f_apa_steering_angle_req_encode(mfWheelAngle);
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if(mfBrake<(-5.0))
|
|
|
+ {
|
|
|
+ can23c.acc_acc_target_acceleration = a07_ecu_23_c_acc_acc_target_acceleration_encode(-5.0);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ can23c.acc_acc_target_acceleration = a07_ecu_23_c_acc_acc_target_acceleration_encode(mfBrake);
|
|
|
+ }
|
|
|
|
|
|
+ if(mfBrake>(-0.0000001))
|
|
|
+ {
|
|
|
+
|
|
|
+ if(xieya > 0)
|
|
|
+ {
|
|
|
+
|
|
|
+ can23c.acc_cdd_active = a07_ecu_23_c_acc_cdd_active_encode(1.0);
|
|
|
+ can23c.acc_acc_target_acceleration = a07_ecu_23_c_acc_acc_target_acceleration_encode(0.5);
|
|
|
+ can23c.acc_acc_trq_req = a07_ecu_23_c_acc_acc_trq_req_encode(0.0);
|
|
|
+ can23c.acc_acc_trq_req_active = a07_ecu_23_c_acc_acc_trq_req_active_encode(0.0);
|
|
|
+ can23c.acc_driveoff_request = a07_ecu_23_c_acc_driveoff_request_encode(1.0);
|
|
|
+ xieya--;
|
|
|
+ std::cout<<" xieya. now veh speed: "<<gfVehSpd<<std::endl;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
|
|
|
+ can23c.acc_cdd_active = a07_ecu_23_c_acc_cdd_active_encode(0.0);
|
|
|
+ can23c.acc_acc_target_acceleration = a07_ecu_23_c_acc_acc_target_acceleration_encode(0.0);
|
|
|
+ can23c.acc_driveoff_request = a07_ecu_23_c_acc_driveoff_request_encode(0.0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ can23c.acc_cdd_active = a07_ecu_23_c_acc_cdd_active_encode(1.0);
|
|
|
+ can23c.acc_driveoff_request = a07_ecu_23_c_acc_driveoff_request_encode(0.0);
|
|
|
}
|
|
|
+
|
|
|
std::this_thread::sleep_for(std::chrono::milliseconds(10));
|
|
|
}
|
|
|
}
|