Skip to content
Snippets Groups Projects
Commit 70a8defd authored by ucart's avatar ucart
Browse files

updated paramaters.sh and fixed negative number for setparam

parent c040eb8d
No related branches found
No related tags found
No related merge requests found
cd ..
./setparam "y pos pid" "kp" 0.015
./setparam "y pos pid" "ki" 0.005
./setparam "y pos pid" "kd" 0.03
./setparam "x pos pid" "kp" -0.015
./setparam "x pos pid" "ki" -0.005
./setparam "x pos pid" "kd" -0.03
./setparam "altitude pid" "kp" 9804
./setparam "altitude pid" "ki" 817
./setparam "altitude pid" "kd" 7353
./setparam "pitch pid" "kp" 4.29
./setparam "pitch pid" "ki" 0
./setparam "pitch pid" "kd" 0
./setparam "roll pid" "kp" 4.29
./setparam "roll pid" "ki" 0
./setparam "roll pid" "kd" 0
./setparam "yaw pid" "kp" 2.6
./setparam "yaw pid" "ki" 0
./setparam "yaw pid" "kd" 0
./setparam "pitch rate pid" "kp" 1138.5
./setparam "pitch rate pid" "ki" 0
./setparam "pitch rate pid" "kd" 0
./setparam "roll rate pid" "kp" 1138.5
./setparam "roll rate pid" "ki" 0
./setparam "roll rate pid" "kd" 0
./setparam "yaw rate pid" "kp" 29700
./setparam "yaw rate pid" "ki" 0
./setparam "yaw rate pid" "kd" 0
lat p -0.015
lat i -0.005
lat d -0.03
long p 0.015
long i 0.005
long d 0.03
height p 9804.0
height i 817.0
height d 7353.0
pitch p 15.0
pitch i 0.0
pitch d 0.2
roll p 15.0
roll i 0.0
roll d 0.2
yaw p 2.6
yaw i 0.0
yaw d 0.0
pitchv p 4600.0
pitchv i 0.0
pitchv d 550
rollv p 4600.0
rollv i 0.0
rollv d 550
yawv p 435480
yawv i 0.0
yawv d 0.0
......@@ -862,8 +862,12 @@ static void quad_recv() {
static void handleResponse(struct metadata *m, uint8_t * data)
{
ssize_t result;
ssize_t result = 0;
char *buffer = malloc(sizeof(*buffer) * 128);
if (!buffer) {
warnx("failed immediatly");
return;
}
switch (m->msg_type) {
case RESPPARAM_ID:
......@@ -876,20 +880,23 @@ static void handleResponse(struct metadata *m, uint8_t * data)
result = DecodeResponseOutput(buffer, 128, m, data);
break;
case RESPNODES_ID:
result = DecodeResponseGetNodes(buffer, 128, m, data);
result = DecodeResponseGetNodes(&buffer, 128, m, data);
break;
case RESPADDNODE_ID:
result = DecodeResponseAddNode(buffer, 128, m, data);
break;
default:
result = -1;
result = -2;
break;
}
if (result < 0) {
if (result == -2) {
warnx("DecodeResponse error");
free(buffer);
return;
} else if (result < 0) {
warnx("DecodeResponse error");
return;
}
// printf("msg to client = '%s'\n", buffer);
......
......@@ -77,8 +77,10 @@ static int resizeMsg(char **msg_ptr, int *curr_max, int check_val) {
/* resize the msg if necessary */
if (*curr_max < check_val) {
*curr_max = *curr_max * 4;
char *old_ptr = *msg_ptr;
*msg_ptr = realloc(*msg_ptr, sizeof(**msg_ptr) * *curr_max);
if (!msg_ptr) {
*msg_ptr = old_ptr;
return -1;
}
}
......@@ -89,7 +91,7 @@ static int resizeMsg(char **msg_ptr, int *curr_max, int check_val) {
* Returns bytes written to msg, -1 on failure.
*/
int DecodeResponseGetNodes(
char * msg, /* Out */
char ** msg, /* Out */
size_t max_len, /* msg buffer max size */
const struct metadata *m, /* In */
const uint8_t * data) /* In */
......@@ -104,8 +106,8 @@ int DecodeResponseGetNodes(
uint16_t num_nodes = BytesTo16(data[RESP_GN_NUM_NODES_L], data[RESP_GN_NUM_NODES_H]);
if (resizeMsg(&msg, (int *)&max_len, (m->data_len *2)) == -1) {
return -1;
if (resizeMsg(msg, (int *)&max_len, (m->data_len *2)) == -1) {
return -2;
}
int16_t val;
......@@ -113,29 +115,28 @@ int DecodeResponseGetNodes(
size_t i;
int msg_len = 0, msg_offset = 0, data_offset = RESP_GN_MIN_DATA_SIZE;
sprintf(msg, "getnodes %hu %n", num_nodes, &msg_offset);
sprintf(*msg, "getnodes %hu %n", num_nodes, &msg_offset);
msg_len += msg_offset;
for(i = 0; i < num_nodes * 3; ++i) {
if (i < num_nodes * 2) {
val = BytesTo16(data[data_offset], data[data_offset+1]);
data_offset += 2;
sprintf(&msg[msg_len], "%" PRId16 " %n", val, &msg_offset);
sprintf(&(*msg)[msg_len], "%" PRId16 " %n", val, &msg_offset);
} else {
strncpy(name, (char *) (data + data_offset), 512);
data_offset += strlen(name) + 1;
sprintf(&msg[msg_len], "'%s' %n", name, &msg_offset);
sprintf(&(*msg)[msg_len], "'%s' %n", name, &msg_offset);
}
msg_len += msg_offset;
if (resizeMsg(&msg, (int *)&max_len, msg_len + (msg_offset *2)) == -1) {
return -1;
if (resizeMsg(msg, (int *)&max_len, msg_len + (msg_offset *2)) == -1) {
return -2;
}
}
strcat(&msg[msg_len], "\n");
return strlen(msg);
strcat(&(*msg)[msg_len], "\n");
return strlen(*msg);
}
enum ResponseAddnodeData {
......
......@@ -29,7 +29,7 @@ ssize_t EncodeAddNode(
* Returns bytes written to msg, -1 on failure.
*/
int DecodeResponseGetNodes(
char * msg, /* Out */
char ** msg, /* Out */
size_t max_len, /* msg buffer max size */
const struct metadata *m, /* In */
const uint8_t * data); /* In */
......
......@@ -3,6 +3,7 @@
#include <err.h>
#include <libgen.h>
#include <getopt.h>
#include <stdlib.h>
#include "cli.h"
......@@ -15,6 +16,7 @@ int main(int argc, char **argv)
struct backend_conn *conn;
int needCliHelp = 0, needCommandHelp = 0;
setenv("POSIXLY_CORRECT", "1",1);
// Determine if the cli was called using a symlink
command = basename(argv[0]);
for(i = 0; i < MAX_COMMANDS; ++i) {
......@@ -159,8 +161,6 @@ int convert_to_id(struct backend_conn * conn, char **argv, struct convert_data *
int search_1 = 0, search_2 = 0;
const struct graph_node_type * node_definition;
if (!isNumber(argv[1])) {
search_1 = 1;
} else {
......
......@@ -42,10 +42,10 @@ int cli_getnodes(struct backend_conn * conn, int argc, char ** argv) {
printf("--------------------------------------------------------------------------------------------------------------\n");
printf("The following %lu Nodes have been found:\n", num_nodes);
printf("--------------------------------------------------------------------------------------------------------------\n");
printf("\tBLOCK\t\tTYPE\t\tNAME\t\tINPUTS\t\tPARAMS\t\tOUTPUTS\n");
printf(" BLOCK\tTYPE\tNAME\t\tINPUTS\t\tPARAMS\t\tOUTPUTS\n");
printf("--------------------------------------------------------------------------------------------------------------\n");
for(i = 0; i < num_nodes; ++i) {
printf("\t%3d\t\t%3d\t\t%s\t", node_data[i].block, node_data[i].type, node_data[i].name);
printf(" %3d\t%3d\t%s\t", node_data[i].block, node_data[i].type, node_data[i].name);
const struct graph_node_type * node_definition = blockDefs[node_data[i].type];
printf(" {");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment