From 45ad137c9358d0e3b0d5fabcb0f45d5746739375 Mon Sep 17 00:00:00 2001
From: Adrien van den Bossche <vandenbo@univ-tlse2.fr>
Date: Fri, 7 Aug 2020 13:20:12 +0200
Subject: [PATCH] Add createUniversalGnssPacketWithMovementId() method

---
 arduino/Locapack/Locapack.cpp | 35 +++++++++++++++++++++++++++++++++++
 arduino/Locapack/Locapack.h   |  6 ++++++
 2 files changed, 41 insertions(+)

diff --git a/arduino/Locapack/Locapack.cpp b/arduino/Locapack/Locapack.cpp
index 8631142..4a425d5 100644
--- a/arduino/Locapack/Locapack.cpp
+++ b/arduino/Locapack/Locapack.cpp
@@ -220,6 +220,41 @@ int Locapack::createUniversalGnssPacket(universalGnssPacket_t* universalGnssPack
 }
 
 
+int Locapack::createUniversalGnssPacketWithMovementId(universalGnssPacket_t* universalGnssPacket, uint8_t movement_id, uint8_t* buffer)
+{
+	int len = 0;
+	uint8_t payload_buffer[MAX_BUFFER_LEN];
+	int payload_buffer_len = 0;
+
+	payload_buffer_len = makeUniversalGnssPayload(
+		universalGnssPacket->valid_gnss_position,
+		universalGnssPacket->latitude, 
+		universalGnssPacket->longitude, 
+		universalGnssPacket->altitude_present, 
+		universalGnssPacket->altitude, 
+		universalGnssPacket->dop_present, 
+		universalGnssPacket->dop, 
+		payload_buffer);
+
+	// protocol_version_t					PROTOCOL_V1
+	// uint8_t movement_id_presence_flag	false
+	// uint8_t timestamp_presence_flag 		true
+	// packet_type_t packet_type 			PACKET_TYPE_UNIVERSAL_GNSS
+	// uint16_t sequence_number 			(internal sequence_number)
+	// uint64_t timestamp					(millis)
+	// uint8_t movement_id					disabled
+	// device_id_t* device_id				(internal device_id)
+	// uint8_t* payload						the UniversalGnssPacket generated
+	// uint8_t payload_len					the generated packet length
+	// uint8_t* buffer						the given buffer
+
+	len = makePacket(PROTOCOL_V1, true, true, PACKET_TYPE_UNIVERSAL_GNSS, ++_sequence_number_universalGnssPacket, 
+		(uint64_t)millis(), movement_id, &_device_id, payload_buffer, payload_buffer_len, buffer);
+
+	return len;
+}
+
+
 int Locapack::makeLocallyReferencedPayload(float x, float y, bool z_present, float z, bool dop_present, float dop, 
 	bool frameofref_id_present, uint64_t frameofref_id, uint8_t* buffer)
 {
diff --git a/arduino/Locapack/Locapack.h b/arduino/Locapack/Locapack.h
index 7347edd..c4a7710 100644
--- a/arduino/Locapack/Locapack.h
+++ b/arduino/Locapack/Locapack.h
@@ -166,6 +166,12 @@ class Locapack {
 		///
 		int createUniversalGnssPacket(universalGnssPacket_t* gnss, uint8_t* buffer);
 
+		///
+		/// @brief 
+		/// @param 
+		///
+        int createUniversalGnssPacketWithMovementId(universalGnssPacket_t* universalGnssPacket, uint8_t movement_id, uint8_t* buffer);
+
 		///
 		/// @brief 
 		/// @param 
-- 
GitLab