diff --git a/groundStation/src/cli/cli_getpid.c b/groundStation/src/cli/cli_getpid.c index c57d42a52227bbb39d2fbceb40c182ab58a723ec..7eb2fb6a84a05f0cc1fd82dd048c4423e8264212 100644 --- a/groundStation/src/cli/cli_getpid.c +++ b/groundStation/src/cli/cli_getpid.c @@ -16,10 +16,10 @@ int cli_getpid(struct backend_conn * conn, int argc, char **argv) { {"roll", no_argument, &getRoll, 1}, {"pitch", no_argument, &getPitch, 1}, {"yaw", no_argument, &getYaw, 1}, - {"rollv", no_argument, &getYawV, 1}, - {"pitchv", no_argument, &getYawV, 1}, + {"rollv", no_argument, &getRollV, 1}, + {"pitchv", no_argument, &getPitchV, 1}, {"yawv", no_argument, &getYawV, 1}, - {"height", no_argument, &getHeight, 1}, + {"height", no_argument, &getHeight, 1}, {"lat", no_argument, &getLat, 1}, {"long", no_argument, &getLong, 1}, {"help", no_argument, &needHelp, 1}, @@ -64,17 +64,11 @@ int cli_getpid(struct backend_conn * conn, int argc, char **argv) { int result; if(getAll) { - pid_data.controller = PID_ROLL; - if ((result = getValues(conn, &pid_data))) { - return result; - } - pid_data.controller = PID_PITCH; - if ((result = getValues(conn, &pid_data))) { - return result; - } - pid_data.controller = PID_YAW; - if ((result = getValues(conn, &pid_data))) { - return result; + for(int i = 0; i < PID_NUM_PIDS; ++i) { + pid_data.controller = i; + if ((result = getValues(conn, &pid_data))) { + return result; + } } } else { if(getPitch) { @@ -95,6 +89,43 @@ int cli_getpid(struct backend_conn * conn, int argc, char **argv) { return result; } } + if(getPitchV) { + pid_data.controller = PID_PITCH_RATE; + if ((result = getValues(conn, &pid_data))) { + return result; + } + } + if(getRollV) { + pid_data.controller = PID_ROLL_RATE; + if ((result = getValues(conn, &pid_data))) { + return result; + } + } + if(getYawV) { + pid_data.controller = PID_YAW_RATE; + if ((result = getValues(conn, &pid_data))) { + return result; + } + } + if(getHeight) { + pid_data.controller = PID_HEIGHT; + if ((result = getValues(conn, &pid_data))) { + return result; + } + } + if(getLat) { + pid_data.controller = PID_LAT; + if ((result = getValues(conn, &pid_data))) { + return result; + } + } + if(getLong) { + pid_data.controller = PID_LONG; + if ((result = getValues(conn, &pid_data))) { + return result; + } + } + } return 0; @@ -105,8 +136,6 @@ int getValues(struct backend_conn * conn, struct frontend_pid_data * pid_data) { return 1; } - return 0; - switch(pid_data->controller) { case PID_PITCH : printf("Pitch Constants: P = %f\tI = %f\tD = %f\n", @@ -120,6 +149,30 @@ int getValues(struct backend_conn * conn, struct frontend_pid_data * pid_data) { printf("Yaw Constants: P = %f\tI = %f\tD = %f\n", pid_data->p, pid_data->i, pid_data->d); break; + case PID_PITCH_RATE : + printf("Pitch Rate Constants: P = %f\tI = %f\tD = %f\n", + pid_data->p, pid_data->i, pid_data->d); + break; + case PID_ROLL_RATE : + printf("Roll Rate Constants: P = %f\tI = %f\tD = %f\n", + pid_data->p, pid_data->i, pid_data->d); + break; + case PID_YAW_RATE : + printf("Yaw Rate Constants: P = %f\tI = %f\tD = %f\n", + pid_data->p, pid_data->i, pid_data->d); + break; + case PID_HEIGHT : + printf("Height Constants: P = %f\tI = %f\tD = %f\n", + pid_data->p, pid_data->i, pid_data->d); + break; + case PID_LAT : + printf("Latitude Constants: P = %f\tI = %f\tD = %f\n", + pid_data->p, pid_data->i, pid_data->d); + break; + case PID_LONG : + printf("Longitude Constants: P = %f\tI = %f\tD = %f\n", + pid_data->p, pid_data->i, pid_data->d); + break; default : break; }