diff --git a/inc/Message.hpp b/inc/Message.hpp
index 268af02f6780a11e17d3a655e3fce29c96589358..a303f84b7aef120dc3e0eefbf8c13c08b991754f 100644
--- a/inc/Message.hpp
+++ b/inc/Message.hpp
@@ -344,6 +344,11 @@ public:
 		uint32_t value = readWord();
 		return reinterpret_cast<float &>(value);
 	}
+
+	/**
+	 * Reset the message reading status, and start reading data from it again
+	 */
+	void resetRead();
 };
 
 
diff --git a/src/Message.cpp b/src/Message.cpp
index d17eb0f5c003792d37fe66975425ae15d4e7a92d..292ec6953655cc1bb6efb00b792eaf094fd583fc 100644
--- a/src/Message.cpp
+++ b/src/Message.cpp
@@ -139,3 +139,8 @@ void Message::readString(char *string, uint8_t size) {
 
 	readPosition += size;
 }
+
+void Message::resetRead() {
+	readPosition = 0;
+	currentBit = 0;
+}