diff --git a/lib/comms/comms.cpp b/lib/comms/comms.cpp index 48dfae6..b4824b7 100644 --- a/lib/comms/comms.cpp +++ b/lib/comms/comms.cpp @@ -392,6 +392,14 @@ Message *_parsePacket(String p) return m; } + if (cmd.equalsIgnoreCase("heading")) + { + Message *m = new Message(); + m->type = MessageType::HEADING; + m->payload.heading.heading = _intParam(p, 0); + return m; + } + return NULL; } diff --git a/lib/comms/comms.h b/lib/comms/comms.h index 47451ba..2b5124a 100644 --- a/lib/comms/comms.h +++ b/lib/comms/comms.h @@ -26,7 +26,8 @@ enum MessageType SCAN_RESULT, SCAN_MAX_RESULT, CONFIG_TASK, - _MAX_MESSAGE_TYPE = CONFIG_TASK + HEADING, + _MAX_MESSAGE_TYPE = HEADING }; enum ConfigTaskType @@ -65,6 +66,11 @@ struct ConfigTask ConfigTaskType task_type; }; +struct Heading +{ + int16_t heading; +}; + struct Message { MessageType type; @@ -74,6 +80,7 @@ struct Message ConfigTask config; ScanTask scan; ScanTaskResult dump; + Heading heading; } payload; ~Message();