Skip to content
Snippets Groups Projects
Unverified Commit 1989f492 authored by Jake Drahos's avatar Jake Drahos
Browse files

Reworked commands.c to support all PID constants

parent bee97348
No related branches found
No related tags found
No related merge requests found
......@@ -44,29 +44,29 @@ struct MessageType MessageTypes[MAX_TYPE] =
// Message Type ID
0x01,
// Calibration Subtypes
// Calibration Subtypes (PID coefficients)
{
// yaw setpoint subtype
// yaw p constant subtype
{
// ID
0x00,
// Command text
"setyaw",
"setyawp",
// Type of the command data
floatType,
// Function pointer
&setyaw
NULL
},
// yaw p constant subtype
// yaw i constant subtype
{
// ID
0x01,
// Command text
"setyawp",
"setyawi",
// Type of the command data
floatType,
// Function pointer
&setyawp
NULL
},
// yaw d constant subtype
{
......@@ -77,29 +77,29 @@ struct MessageType MessageTypes[MAX_TYPE] =
// Type of the command data
floatType,
// Function pointer
&setyawd
NULL
},
// roll setpoint subtype
// roll p constant subtype
{
// ID
0x03,
// Command text
"setroll",
"setrollp",
// Type of the command data
floatType,
// Function pointer
&setroll
NULL
},
// roll p constant subtype
// roll i constant subtype
{
// ID
0x04,
// Command text
"setrollp",
"setrolli",
// Type of the command data
floatType,
// Function pointer
&setrollp
NULL
},
// roll d constant subtype
{
......@@ -110,29 +110,29 @@ struct MessageType MessageTypes[MAX_TYPE] =
// Type of the command data
floatType,
// Function pointer
&setrolld
NULL
},
// pitch setpoint subtype
// pitch p constant subtype
{
// ID
0x06,
// Command text
"setpitch",
"setpitchp",
// Type of the command data
floatType,
// Function pointer
&setpitch
NULL
},
// pitch p constant subtype
// pitch i constant subtype
{
// ID
0x07,
// Command text
"setpitchp",
"setpitchi",
// Type of the command data
floatType,
// Function pointer
&setpitchp
NULL
},
// pitch d constant subtype
{
......@@ -143,51 +143,205 @@ struct MessageType MessageTypes[MAX_TYPE] =
// Type of the command data
floatType,
// Function pointer
&setpitchd
NULL
},
// throttle setpoint subtype
// yawrate p constant subtype
{
// ID
0x09,
// Command text
"setthrottle",
"setyawratep",
// Type of the command data
floatType,
// Function pointer
&setthrottle
NULL
},
// throttle p constant subtype
// yawrate i constant subtype
{
// ID
0x0A,
// Command text
"setthrottlep",
"setyawratei",
// Type of the command data
floatType,
// Function pointer
&setthrottlep
NULL
},
// throttle i constant subtype
// yawrate d constant subtype
{
// ID
0x0B,
// Command text
"setthrottlei",
"setyawrated",
// Type of the command data
floatType,
// Function pointer
&setthrottlei
NULL
},
// throttle d constant subtype
// rollrate p constant subtype
{
// ID
0x0C,
// Command text
"setthrottled",
"setrollratep",
// Type of the command data
floatType,
// Function pointer
&getthrottled
NULL
},
// rollrate i constant subtype
{
// ID
0x0D,
// Command text
"setrollratei",
// Type of the command data
floatType,
// Function pointer
NULL
},
// rollrate d constant subtype
{
// ID
0x0E,
// Command text
"setrollrated",
// Type of the command data
floatType,
// Function pointer
NULL
},
// pitchrate p constant subtype
{
// ID
0x0F,
// Command text
"setpitchratep",
// Type of the command data
floatType,
// Function pointer
NULL
},
// pitchrate i constant subtype
{
// ID
0x10,
// Command text
"setpitchratei",
// Type of the command data
floatType,
// Function pointer
NULL
},
// pitchrate d constant subtype
{
// ID
0x11,
// Command text
"setpitchrated",
// Type of the command data
floatType,
// Function pointer
NULL
},
// height p constant subtype
{
// ID
0x12,
// Command text
"setheightp",
// Type of the command data
floatType,
// Function pointer
NULL
},
// height i constant subtype
{
// ID
0x13,
// Command text
"setheighti",
// Type of the command data
floatType,
// Function pointer
NULL
},
// height d constant subtype
{
// ID
0x14,
// Command text
"setheightd",
// Type of the command data
floatType,
// Function pointer
NULL
},
// lat p constant subtype
{
// ID
0x15,
// Command text
"setlatp",
// Type of the command data
floatType,
// Function pointer
NULL
},
// lat i constant subtype
{
// ID
0x16,
// Command text
"setlati",
// Type of the command data
floatType,
// Function pointer
NULL
},
// lat d constant subtype
{
// ID
0x17,
// Command text
"setlatd",
// Type of the command data
floatType,
// Function pointer
NULL
},
// long p constant subtype
{
// ID
0x18,
// Command text
"setlongp",
// Type of the command data
floatType,
// Function pointer
NULL
},
// long i constant subtype
{
// ID
0x19,
// Command text
"setlongi",
// Type of the command data
floatType,
// Function pointer
NULL
},
// long d constant subtype
{
// ID
0x1A,
// Command text
"setlongd",
// Type of the command data
floatType,
// Function pointer
NULL
}
}
},
......@@ -993,4 +1147,4 @@ int respthrottlei(unsigned char *packet, int dataLen, modular_structs_t *structs
}
int respthrottled(unsigned char *packet, int dataLen, modular_structs_t *structs){
return 0;
}
\ No newline at end of file
}
......@@ -256,12 +256,16 @@ int processCommand(unsigned char *packet, modular_structs_t *structs) {
}
if(metadata.data_len >= 0) {
// Call the appropriate subtype function
(* (MessageTypes[(unsigned char)metadata.msg_type].subtypes[(unsigned char)metadata.msg_subtype].functionPtr))(data, metadata.data_len, structs);
/* Null check*/
if (MessageTypes[(unsigned char)metadata.msg_type].subtypes[
(unsigned char) metadata.msg_subtype].functionPtr) {
// Call the appropriate subtype function
(* (MessageTypes[(unsigned char)metadata.msg_type].subtypes[(unsigned char)metadata.msg_subtype].functionPtr))(data, metadata.data_len, structs);
}
return 0;
}
// Only gets here if there is an error
return -1;
}
\ No newline at end of file
}
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