From 9e9fe5ef7ee3380c795d4929c109bb857d9b9bb4 Mon Sep 17 00:00:00 2001
From: Adrien van den Bossche <vandenbo@univ-tlse2.fr>
Date: Tue, 23 Jun 2020 21:41:26 +0200
Subject: [PATCH] Add very basic test examples for type 1 and type 2

---
 ...-and-decode_Locally_Referenced_packets.ino | 75 +++++++++++++++++++
 ...eate-and-decode_Universal_GNSS_packets.ino | 51 +++++++++++++
 2 files changed, 126 insertions(+)
 create mode 100644 arduino/Locapack/examples/create-and-decode_Locally_Referenced_packets/create-and-decode_Locally_Referenced_packets.ino
 create mode 100644 arduino/Locapack/examples/create-and-decode_Universal_GNSS_packets/create-and-decode_Universal_GNSS_packets.ino

diff --git a/arduino/Locapack/examples/create-and-decode_Locally_Referenced_packets/create-and-decode_Locally_Referenced_packets.ino b/arduino/Locapack/examples/create-and-decode_Locally_Referenced_packets/create-and-decode_Locally_Referenced_packets.ino
new file mode 100644
index 0000000..dd90a58
--- /dev/null
+++ b/arduino/Locapack/examples/create-and-decode_Locally_Referenced_packets/create-and-decode_Locally_Referenced_packets.ino
@@ -0,0 +1,75 @@
+#include <Locapack.h>
+
+#define LOCAPACK_PACKET_PERIOD 2000
+
+Locapack locapack;
+uint8_t buffer[128];
+Locapack::device_id_t device_id;
+Locapack::locallyReferencedPacket_t locRef;
+Locapack::locapacket_t locapacket;
+
+void printUint64 ( uint64_t ui64 )
+{
+  uint8_t buf[8];
+
+  buf[7] = (ui64 & 0xFF00000000000000) >> 56;
+  buf[6] = (ui64 & 0xFF000000000000) >> 48;
+  buf[5] = (ui64 & 0xFF0000000000) >> 40;
+  buf[4] = (ui64 & 0xFF00000000) >> 32;
+  buf[3] = (ui64 & 0xFF000000) >> 24;
+  buf[2] = (ui64 & 0xFF0000) >> 16;
+  buf[1] = (ui64 & 0xFF00) >> 8;
+  buf[0] = ui64 & 0xFF;
+
+  for (int i=7; i>=0; i--)
+  {
+    if (buf[i]<0x10) Serial.print("0"); 
+    Serial.print(buf[i], HEX); 
+    Serial.print(" ");
+  }
+}
+
+void setup()
+{
+  Serial.begin(115200);
+  locapack.setdevice_id16(0x1234);
+
+  locRef.z_present = true;
+  locRef.dop_present = true;
+  locRef.frameofref_id_present = true;
+}
+
+void loop()
+{
+  locRef.x = 1.0;
+  locRef.y = 2.0;
+  locRef.z = 3.0;
+  locRef.dop = 4.0;
+  locRef.frameofref_id = 0x1122334455667788;
+
+  // Locally Referenced Packet creation
+  Serial.print("I create a new packet! len=");
+  int len = locapack.createLocallyReferencedPacket(&locRef, buffer);
+  Serial.print(len);
+  Serial.println("byte(s): ");
+  for (int i=0; i<len; i++)
+  {
+    Serial.print(buffer[i], HEX);
+    Serial.print(" ");
+  }
+  Serial.println();
+
+  // Locally Referenced Packet decoding
+  Serial.println("Now try to decode this packet...");
+  len = locapack.parseLocaPacket(&locapacket, buffer);
+  Serial.print("packet len="); Serial.println(len);
+  Serial.print("x="); Serial.println(locapacket.locallyReferencedPacket.x);
+  Serial.print("y="); Serial.println(locapacket.locallyReferencedPacket.y);
+  Serial.print("z="); Serial.println(locapacket.locallyReferencedPacket.z);
+  Serial.print("hdop="); Serial.println(locapacket.locallyReferencedPacket.dop);
+  Serial.print("frameofref_id="); printUint64(locapacket.locallyReferencedPacket.frameofref_id);
+  Serial.println();
+
+  // Delay
+  delay(LOCAPACK_PACKET_PERIOD);
+}
diff --git a/arduino/Locapack/examples/create-and-decode_Universal_GNSS_packets/create-and-decode_Universal_GNSS_packets.ino b/arduino/Locapack/examples/create-and-decode_Universal_GNSS_packets/create-and-decode_Universal_GNSS_packets.ino
new file mode 100644
index 0000000..1cfceed
--- /dev/null
+++ b/arduino/Locapack/examples/create-and-decode_Universal_GNSS_packets/create-and-decode_Universal_GNSS_packets.ino
@@ -0,0 +1,51 @@
+#include <Locapack.h>
+
+#define LOCAPACK_PACKET_PERIOD 2000
+
+Locapack locapack;
+uint8_t buffer[128];
+Locapack::device_id_t device_id;
+Locapack::universalGnssPacket_t gnss;
+Locapack::locapacket_t locapacket;
+uint32_t timetosend = LOCAPACK_PACKET_PERIOD;
+
+void setup()
+{
+  Serial.begin(115200);
+  locapack.setdevice_id16(0x1234);
+
+  gnss.altitude_present = true;
+  gnss.dop_present = true;
+}
+
+void loop()
+{
+  gnss.latitude = 1.0;
+  gnss.longitude = 2.0;
+  gnss.altitude = 3.0;
+  gnss.dop = 4.0;
+
+  // Universal GNSS Packet creation
+  Serial.print("I create a new packet! len=");
+  int len = locapack.createUniversalGnssPacket(&gnss, buffer);
+  Serial.print(len);
+  Serial.println("byte(s): ");
+  for (int i=0; i<len; i++)
+  {
+    Serial.print(buffer[i], HEX);
+    Serial.print(" ");
+  }
+  Serial.println();
+
+  // Universal GNSS Packet decoding
+  Serial.println("Now try to decode this packet...");
+  len = locapack.parseLocaPacket(&locapacket, buffer);
+  Serial.print("packet len="); Serial.println(len);
+  Serial.print("latitude="); Serial.println(locapacket.universalGnssPacket.latitude);
+  Serial.print("longitude="); Serial.println(locapacket.universalGnssPacket.longitude);
+  Serial.print("altitude="); Serial.println(locapacket.universalGnssPacket.altitude);
+  Serial.print("hdop="); Serial.println(locapacket.universalGnssPacket.dop);
+
+  // Delay
+  delay(LOCAPACK_PACKET_PERIOD);
+}
-- 
GitLab