Procházet zdrojové kódy

added common mac generation

Andrew Tridgell před 3 roky
rodič
revize
7f3223a1da

+ 2 - 3
RemoteIDModule/BLE_TX.cpp

@@ -72,9 +72,8 @@ bool BLE_TX::init(void)
 
     // generate random mac address
     uint8_t mac_addr[6];
-    for (uint8_t i=0; i<6; i++) {
-        mac_addr[i] = uint8_t(random(256));
-    }
+    generate_random_mac(mac_addr);
+
     // set as a bluetooth random static address
     mac_addr[0] |= 0xc0;
 

+ 3 - 4
RemoteIDModule/BLE_TX.h

@@ -3,12 +3,11 @@
  */
 #pragma once
 
-#include <Arduino.h>
-#include <opendroneid.h>
+#include "transmitter.h"
 
-class BLE_TX {
+class BLE_TX : public Transmitter {
 public:
-    bool init(void);
+    bool init(void) override;
     bool transmit_longrange(ODID_UAS_Data &UAS_data);
     bool transmit_legacy_name(ODID_UAS_Data &UAS_data);
     bool transmit_legacy(ODID_UAS_Data &UAS_data);

+ 3 - 7
RemoteIDModule/WiFi_TX.cpp

@@ -12,15 +12,11 @@
 bool WiFi_NAN::init(void)
 {
     //use a local MAC address to avoid tracking transponders based on their MAC address
-    int i;
     uint8_t mac_addr[6];
-    for(i = 0 ; i < 6; i++ )
-	{
-		mac_addr[i] = rand() % 256;
-	}
+    generate_random_mac(mac_addr);
 
-	mac_addr[0] |= 0x02;  //set MAC local bit
-    mac_addr[0] &= 0xFE;  //unset MAC multicast bit
+    mac_addr[0] |= 0x02;  // set MAC local bit
+    mac_addr[0] &= 0xFE;  // unset MAC multicast bit
 
     //set MAC address
     esp_base_mac_addr_set(mac_addr);

+ 3 - 4
RemoteIDModule/WiFi_TX.h

@@ -3,12 +3,11 @@
  */
 #pragma once
 
-#include <Arduino.h>
-#include <opendroneid.h>
+#include "transmitter.h"
 
-class WiFi_NAN {
+class WiFi_NAN : public Transmitter {
 public:
-    bool init(void);
+    bool init(void) override;
     bool transmit(ODID_UAS_Data &UAS_data);
 
 private:

+ 12 - 0
RemoteIDModule/transmitter.cpp

@@ -0,0 +1,12 @@
+/*
+  common functions for all transmitter backends
+ */
+
+#include "transmitter.h"
+
+void Transmitter::generate_random_mac(uint8_t mac[6])
+{
+    for (uint8_t i=0; i<6; i++) {
+        mac[i] = uint8_t(random(256));
+    }
+}

+ 15 - 0
RemoteIDModule/transmitter.h

@@ -0,0 +1,15 @@
+/*
+  parent class for transmission methods
+ */
+#pragma once
+
+#include <Arduino.h>
+#include <opendroneid.h>
+
+class Transmitter {
+public:
+    virtual bool init(void);
+
+protected:
+    void generate_random_mac(uint8_t mac[6]);
+};