From f8769e8546ffb80cceadb9e2c41e76df2b7c590c Mon Sep 17 00:00:00 2001
From: Kris Burney <burneykb@iastate.edu>
Date: Sun, 4 Dec 2016 00:55:42 -0600
Subject: [PATCH] Added help message for getpid

---
 groundStation/Makefile             |  2 +-
 groundStation/src/cli/cli_getpid.c | 17 +++++++++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/groundStation/Makefile b/groundStation/Makefile
index 150ff66c0..b199aef1a 100644
--- a/groundStation/Makefile
+++ b/groundStation/Makefile
@@ -23,7 +23,7 @@ CLIBINARY=Cli
 CLISRCDIR=src/cli
 CLISOURCES := $(wildcard $(CLISRCDIR)/*.c)
 CLIOBJECTS = $(CLISOURCES:$(CLISRCDIR)/%.c=$(OBJDIR)/%.o)
-SYMLINKS=monitor setpid
+SYMLINKS=monitor setpid getpid
 
 # Frontend-common stuff
 FESRCDIR=src/frontend
diff --git a/groundStation/src/cli/cli_getpid.c b/groundStation/src/cli/cli_getpid.c
index bb887ca24..c95ad1248 100644
--- a/groundStation/src/cli/cli_getpid.c
+++ b/groundStation/src/cli/cli_getpid.c
@@ -9,6 +9,7 @@ int cli_getpid(struct backend_conn * conn,	int argc, char **argv) {
 	static int getRoll = 0, getPitch = 0, getYaw = 0, getAll = 0;
 	static int getRollV = 0, getPitchV = 0, getYawV = 0;
 	static int getHeight = 0, getLat = 0, getLong = 0;
+	static int needHelp = 0;
 	struct frontend_pid_data pid_data;
 	static struct option long_options[] = {
  		/* These options don’t set a flag. We distinguish them by their indices. */
@@ -21,6 +22,7 @@ int cli_getpid(struct backend_conn * conn,	int argc, char **argv) {
  		{"height",   no_argument,   	&getHeight,	1},
  		{"lat",   no_argument,   	&getLat, 	1},
  		{"long",   no_argument,   	&getLong, 	1},
+ 		{"help",	no_argument,	&needHelp,	1},
  		{0, 0, 0, 0}
  	};
 
@@ -40,6 +42,21 @@ int cli_getpid(struct backend_conn * conn,	int argc, char **argv) {
 		}
 	}
 
+	if(needHelp) {
+		printf("Getpid gets the p, i , or d constant values of any single controller\n");
+		printf("Usage Syntax : \n\t./Cli getpid controller [options...]\n");
+		printf("Symlink Usage Syntax : \n\t./getpid controller [options...]\n\n");
+		printf("Available 'controllers' include the following\n");
+		printf("\t[--pitch] : Pitch\n\t[--roll] : Roll\n\t[--yaw] : Yaw\n");
+		printf("\t[--pitchv] : Pitch Velocity\n\t[--rollv] : Roll Velocity\n\t[--yawv] : Yaw Velocity\n");
+		printf("\t[--height] : Z\n\t[--lat] : X\n\t[--long] : Y\n\n");
+		printf("Available 'controller' options include the following\n");
+		printf("\t[-p] 'val' : Gets the p constant of the 'controller\n");
+		printf("\t[-i] 'val' : Gets the i constant of the 'controller'\n");
+		printf("\t[-d] 'val' : Gets the d constant of the 'controller'\n");
+		return 0;
+	}
+
 	int result;
 	if(getAll) {
 		pid_data.controller = PID_ROLL;
-- 
GitLab