|
@@ -110,58 +110,58 @@ unsigned char byte_144[8];
|
|
|
unsigned char byte_24B[8];
|
|
|
unsigned char byte_36E[8];
|
|
|
|
|
|
-ECU_144_t* _m144;
|
|
|
-ECU_24B_t* _m24B;
|
|
|
-ECU_36E_t* _m36E;
|
|
|
+ECU_144_t _m144 = {0,0,0,0,0,0};
|
|
|
+ECU_24B_t _m24B = {0,0,0,0,0,0,0,0,0,0,0};
|
|
|
+ECU_36E_t _m36E = {0};
|
|
|
|
|
|
|
|
|
void executeDecition(const iv::brain::decition decition)
|
|
|
{
|
|
|
// std::cout<<"acc is "<<decition.torque()<<" ang is "<<decition.wheelangle()<<std::endl;
|
|
|
- _m144->ACC_LatAngReq = ECU_144_ACC_LatAngReq_toS(decition.wheelangle());
|
|
|
- _m144->ADS_Reqmode = 2;
|
|
|
- _m144->ACC_MotorTorqueMaxLimitRequest = ECU_144_ACC_MotorTorqueMaxLimitRequest_toS(10);
|
|
|
- _m144->ACC_LatAngReqActive = 1;
|
|
|
- _m144->ACC_MotorTorqueMinLimitRequest = ECU_144_ACC_MotorTorqueMinLimitRequest_toS(-10);
|
|
|
- _m144->ACC_ADCReqType = decition.brake_type();//ADC请求类型(制动时为1,其余情况为0)
|
|
|
-
|
|
|
- byte_144[0] |= ((_m144->ACC_LatAngReq >> 9) & (0x1FU)) | ((_m144->ADS_Reqmode & (0x07U)) << 5);
|
|
|
- byte_144[1] |= ((_m144->ACC_LatAngReq >> 1) & (0xFFU));
|
|
|
- byte_144[2] |= ((_m144->ACC_LatAngReq & (0x01U)) << 7) | ((_m144->ACC_MotorTorqueMaxLimitRequest >> 5) & (0x3FU)) | ((_m144->ACC_LatAngReqActive & (0x01U)) << 6);
|
|
|
- byte_144[3] |= ((_m144->ACC_MotorTorqueMaxLimitRequest & (0x1FU)) << 3) | ((_m144->ACC_MotorTorqueMinLimitRequest >> 8) & (0x07U));
|
|
|
- byte_144[4] |= (_m144->ACC_MotorTorqueMinLimitRequest & (0xFFU));
|
|
|
- byte_144[5] |= ((_m144->ACC_ADCReqType & (0x03U)) << 6);
|
|
|
+ _m144.ACC_LatAngReq = ECU_144_ACC_LatAngReq_toS(decition.wheelangle());
|
|
|
+ _m144.ADS_Reqmode = decition.angle_mode();
|
|
|
+ _m144.ACC_MotorTorqueMaxLimitRequest = ECU_144_ACC_MotorTorqueMaxLimitRequest_toS(10);
|
|
|
+ _m144.ACC_LatAngReqActive = decition.angle_active();
|
|
|
+ _m144.ACC_MotorTorqueMinLimitRequest = ECU_144_ACC_MotorTorqueMinLimitRequest_toS(-10);
|
|
|
+ _m144.ACC_ADCReqType = decition.brake_type();//ADC请求类型(制动时为1,其余情况为0)
|
|
|
+
|
|
|
+ byte_144[0] |= ((_m144.ACC_LatAngReq >> 9) & (0x1FU)) | ((_m144.ADS_Reqmode & (0x07U)) << 5);
|
|
|
+ byte_144[1] |= ((_m144.ACC_LatAngReq >> 1) & (0xFFU));
|
|
|
+ byte_144[2] |= ((_m144.ACC_LatAngReq & (0x01U)) << 7) | ((_m144.ACC_MotorTorqueMaxLimitRequest >> 5) & (0x3FU)) | ((_m144.ACC_LatAngReqActive & (0x01U)) << 6);
|
|
|
+ byte_144[3] |= ((_m144.ACC_MotorTorqueMaxLimitRequest & (0x1FU)) << 3) | ((_m144.ACC_MotorTorqueMinLimitRequest >> 8) & (0x07U));
|
|
|
+ byte_144[4] |= (_m144.ACC_MotorTorqueMinLimitRequest & (0xFFU));
|
|
|
+ byte_144[5] |= ((_m144.ACC_ADCReqType & (0x03U)) << 6);
|
|
|
|
|
|
/*制动过程用的减速度,加速用扭矩*/
|
|
|
- _m24B->ACC_AccTrqReq = decition.niuju_y();
|
|
|
- _m24B->ACC_AccTrqReqActive = decition.acc_active();
|
|
|
- _m24B->ACC_ACCTargetAcceleration = decition.accelerator();
|
|
|
-// _m24B->ACC_AEBTargetDeceleration = 0;
|
|
|
-// _m24B->ACC_AEBVehilceHoldReq = 0;
|
|
|
-// _m24B->ADCReqMode = 0;
|
|
|
-// _m24B->ACC_AEBActive = 0;
|
|
|
-// _m24B->ACC_Driveoff_Request = 0;
|
|
|
-// _m24B->ACC_DecToStop = 0;
|
|
|
- _m24B->ACC_CDDActive = decition.brake_active();
|
|
|
- _m24B->ACC_ACCMode = decition.auto_mode();
|
|
|
-
|
|
|
- byte_24B[0] |= ((_m24B->ACC_AccTrqReq >> 7) & (0xFFU));
|
|
|
- byte_24B[1] |= ((_m24B->ACC_AccTrqReq & (0x7FU)) << 1) | (_m24B->ACC_AccTrqReqActive & (0x01U));
|
|
|
- byte_24B[2] |= ((_m24B->ACC_ACCTargetAcceleration >> 3) & (0x1FU));
|
|
|
- byte_24B[3] |= ((_m24B->ACC_ACCTargetAcceleration & (0x07U)) << 5) | ((_m24B->ACC_AEBTargetDeceleration >> 15) & (0x01U));
|
|
|
- byte_24B[4] |= ((_m24B->ACC_AEBTargetDeceleration >> 7) & (0xFFU));
|
|
|
- byte_24B[5] |= ((_m24B->ACC_AEBTargetDeceleration & (0x7FU)) << 1) | (_m24B->ACC_AEBVehilceHoldReq & (0x01U));
|
|
|
- byte_24B[6] |= ((_m24B->ADCReqMode & (0x03U)) << 1) | ((_m24B->ACC_AEBActive & (0x01U)) << 3) | ((_m24B->ACC_Driveoff_Request & (0x01U)) << 5) | ((_m24B->ACC_DecToStop & (0x01U)) << 6) | ((_m24B->ACC_CDDActive & (0x01U)) << 7);
|
|
|
- byte_24B[7] |= (_m24B->ACC_ACCMode & (0x07U));
|
|
|
+ _m24B.ACC_AccTrqReq = decition.niuju_y();
|
|
|
+ _m24B.ACC_AccTrqReqActive = decition.acc_active();
|
|
|
+ _m24B.ACC_ACCTargetAcceleration = decition.accelerator();
|
|
|
+// _m24B.ACC_AEBTargetDeceleration = 0;
|
|
|
+// _m24B.ACC_AEBVehilceHoldReq = 0;
|
|
|
+// _m24B.ADCReqMode = 0;
|
|
|
+// _m24B.ACC_AEBActive = 0;
|
|
|
+// _m24B.ACC_Driveoff_Request = 0;
|
|
|
+// _m24B.ACC_DecToStop = 0;
|
|
|
+ _m24B.ACC_CDDActive = decition.brake_active();
|
|
|
+ _m24B.ACC_ACCMode = decition.auto_mode();
|
|
|
+
|
|
|
+ byte_24B[0] |= ((_m24B.ACC_AccTrqReq >> 7) & (0xFFU));
|
|
|
+ byte_24B[1] |= ((_m24B.ACC_AccTrqReq & (0x7FU)) << 1) | (_m24B.ACC_AccTrqReqActive & (0x01U));
|
|
|
+ byte_24B[2] |= ((_m24B.ACC_ACCTargetAcceleration >> 3) & (0x1FU));
|
|
|
+ byte_24B[3] |= ((_m24B.ACC_ACCTargetAcceleration & (0x07U)) << 5) | ((_m24B.ACC_AEBTargetDeceleration >> 15) & (0x01U));
|
|
|
+ byte_24B[4] |= ((_m24B.ACC_AEBTargetDeceleration >> 7) & (0xFFU));
|
|
|
+ byte_24B[5] |= ((_m24B.ACC_AEBTargetDeceleration & (0x7FU)) << 1) | (_m24B.ACC_AEBVehilceHoldReq & (0x01U));
|
|
|
+ byte_24B[6] |= ((_m24B.ADCReqMode & (0x03U)) << 1) | ((_m24B.ACC_AEBActive & (0x01U)) << 3) | ((_m24B.ACC_Driveoff_Request & (0x01U)) << 5) | ((_m24B.ACC_DecToStop & (0x01U)) << 6) | ((_m24B.ACC_CDDActive & (0x01U)) << 7);
|
|
|
+ byte_24B[7] |= (_m24B.ACC_ACCMode & (0x07U));
|
|
|
|
|
|
if(decition.leftlamp() == true && decition.rightlamp() == false)
|
|
|
- _m36E->ADS_UDLCTurnLightReq = 3;
|
|
|
+ _m36E.ADS_UDLCTurnLightReq = 3;
|
|
|
else if(decition.leftlamp() == false && decition.rightlamp() == true)
|
|
|
- _m36E->ADS_UDLCTurnLightReq = 4;
|
|
|
+ _m36E.ADS_UDLCTurnLightReq = 4;
|
|
|
else
|
|
|
- _m36E->ADS_UDLCTurnLightReq = 0;
|
|
|
+ _m36E.ADS_UDLCTurnLightReq = 0;
|
|
|
|
|
|
- byte_36E[0] |= ((_m36E->ADS_UDLCTurnLightReq & (0x07U)) << 5);
|
|
|
+ byte_36E[0] |= ((_m36E.ADS_UDLCTurnLightReq & (0x07U)) << 5);
|
|
|
|
|
|
}
|
|
|
|