|
|
@@ -136,7 +136,7 @@ static void process_foc_command(foc_cmd_body_t *command) {
|
|
|
len += 1;
|
|
|
break;
|
|
|
}
|
|
|
- case Foc_Set_Phase_Current:
|
|
|
+ case Foc_Set_Phase_CurrLim:
|
|
|
{
|
|
|
s16 curr = decode_s16(((u8 *)command->data));
|
|
|
PMSM_FOC_PhaseCurrLim((float)curr);
|
|
|
@@ -185,6 +185,28 @@ static void process_foc_command(foc_cmd_body_t *command) {
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
+ case Foc_Start_DQ_Calibrate:
|
|
|
+ {
|
|
|
+ u8 start = decode_u8((u8 *)command->data);
|
|
|
+ if (start == Foc_Start) {
|
|
|
+ PMSM_FOC_MTPA_Calibrate(true);
|
|
|
+ }else {
|
|
|
+ PMSM_FOC_MTPA_Calibrate(false);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case Foc_Set_IS_Curr_Angle:
|
|
|
+ {
|
|
|
+ if (command->len != 4) {
|
|
|
+ erroCode = FOC_Param_Err;
|
|
|
+ }else {
|
|
|
+ s16 is_curr = decode_s16((u8 *)command->data);
|
|
|
+ s16 is_angle = decode_s16((u8 *)command->data + 2);
|
|
|
+ PMSM_FOC_Set_Current(is_curr);
|
|
|
+ PMSM_FOC_Set_Angle(is_angle);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
default:
|
|
|
{
|
|
|
erroCode = FOC_Unknow_Cmd;
|