Newer
Older
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/* Get a specified PID.
*
* Example:
*
* struct frontend_pid_data pid_data;
* if (frontend_getpid(conn, &pid_data)) {
* error
* } else {
* pid_data.p, pid_data.i, and pid_data.d are filled
* }
*
* Returns 0 on success, 1 on error
*/
int frontend_getpid(
struct backend_conn * conn, struct frontend_pid_data * pid_data) {
strncpy(line, "getpitchp\ngetpitchi\ngetpitchd\n", 30);
strncpy(line, "getrollp\ngetrolli\ngetrolld\n", 27);
strncpy(line, "getyawp\ngetyawi\ngetyawd\n", 24);
break;
case PID_PITCH_RATE :
strncpy(line, "getpitchratep\ngetpitchratei\ngetpitchrated\n", 33);
strncpy(line, "getrollratep\ngetrollratei\ngetrollrated\n", 30);
strncpy(line, "getyawratep\ngetyawratei\ngetyawrated\n", 27);
break;
case PID_HEIGHT :
strncpy(line, "getheightp\ngetheighti\ngetheightd\n", 33);
break;
case PID_LAT :
strncpy(line, "getlatp\ngetlati\ngetlatd\n", 24);
break;
case PID_LONG :
strncpy(line, "getlongp\ngetlongi\ngetlongd\n", 27);
break;
default :
return 1;
}
int size;
if((size = ucart_backendWrite(conn, line)) < 0 ) {
return 1;
}