diff --git a/can/network.yml b/can/network.yml index e391ad5fa..64c2cc458 100644 --- a/can/network.yml +++ b/can/network.yml @@ -314,6 +314,10 @@ nodes: from_template: PIDGains id: 0x778 + - SetSTEERGains: + from_template: PIDGains + id: 0x779 + - SteeringCommand: id: 0x21 cycletime: 10 @@ -490,6 +494,7 @@ nodes: - STEER: rx: - DBW_ESTOP + - DBW_SetSTEERGains - DBW_SteeringCommand - ODRIVE_Status - SUP_Authorization @@ -608,6 +613,12 @@ nodes: - READY - CALIBRATING - NEEDS_CALIBRATION + + - SteeringGains: + from_template: PIDGains + id: 0x251 + cycletime: 10 + - STEERBL: rx: - UPD_IsoTpTx_STEER diff --git a/components/steer/src/steer.c b/components/steer/src/steer.c index 550155d24..0b68928c2 100644 --- a/components/steer/src/steer.c +++ b/components/steer/src/steer.c @@ -162,6 +162,25 @@ static bool odrive_calibration_needed(void) return calibration_needed; } +void CANRX_onRxCallback_DBW_SetSTEERGains( + const struct CAN_TMessageRaw_PIDGains * const raw, + const struct CAN_TMessage_PIDGains * const dec) +{ + (void) raw; + + pid.kp = dec->gainKp; + pid.ki = dec->gainKi; + pid.kd = dec->gainKd; +} + +void CANTX_populateTemplate_SteeringGains( + struct CAN_TMessage_PIDGains * const m) +{ + m->gainKp = pid.kp; + m->gainKi = pid.ki; + m->gainKd = pid.kd; +} + void CANTX_populate_STEER_Alarms(struct CAN_Message_STEER_Alarms * const m) { m->STEER_alarmsRaised = alarm.odrive_calibration;