LP Long Distance IR Vision Robot

Dependencies:   max77650_charger_sample BufferedSerial SX1276GenericLib Adafruit-MotorShield NEO-6m-GPS MAX17055_EZconfig Adafruit_GFX USBDeviceHT Adafruit-PWM-Servo-Driver

Revision:
26:69aba05f010f
Parent:
25:1a031add188a
Child:
27:6b549f838f0a
--- a/global_buffers.h	Thu Jul 19 21:13:19 2018 +0000
+++ b/global_buffers.h	Fri Jul 20 16:31:41 2018 +0000
@@ -45,10 +45,18 @@
  * the payload so we can instatiate the correct buffer sizes to store data that 
  * is to be delivered and for data that is received. 
  */
-
 const uint16_t PAYLOAD_BUFFER_SIZE_MASTER_TO_SLAVE = size_signature + size_of_ble;
 const uint16_t PAYLOAD_BUFFER_SIZE_SLAVE_TO_MASTER = size_signature + size_of_grid_eye + size_of_gps + size_of_MAX17055 + size_of_MAX77650;
 
+/* determine the appropriate buffer sizes for each device in master/slave config */
+#if   defined(TARGET_MAX32630FTHR) // Master Device: Bluetooth Gateway
+    const uint16_t BufferSizeTx = PAYLOAD_BUFFER_SIZE_MASTER_TO_SLAVE;
+    const uint16_t BufferSizeRx = PAYLOAD_BUFFER_SIZE_SLAVE_TO_MASTER;
+#elif defined(TARGET_MAX32620FTHR) // Slave Device: Robot
+    const uint16_t BufferSizeTx = PAYLOAD_BUFFER_SIZE_SLAVE_TO_MASTER;
+    const uint16_t BufferSizeRx = PAYLOAD_BUFFER_SIZE_MASTER_TO_SLAVE;
+#endif
+
 #if   defined(TARGET_MAX32630FTHR) // Master Device: BLE-to-LoRa Gateway
     /* These are indexs used to create the payload buffer to send to Slave */  
     const uint8_t tx_idx_signature = 0;                                   // 1st buf in tx payload (begins at byte 0)
@@ -74,59 +82,55 @@
     const uint8_t rx_idx_ble       = rx_idx_signature + size_signature;   // 2nd buf in rx payload
 #endif
 
-
 /***************************************************************************
  * BLE Data Buffers
  **************************************************************************/
-#if   defined(TARGET_MAX32630FTHR) // Master Device: BLE-to-LoRa Gateway
-    static char curr_ble_data_to_slave[size_of_ble];
-#elif defined(TARGET_MAX32620FTHR) // Slave Device: LoRa Controlled Robot
-    static char curr_ble_data_from_master[size_of_ble];
-    static char prev_ble_data_from_master[size_of_ble];
-#endif
-
+    #if   defined(TARGET_MAX32630FTHR) // Master Device: BLE-to-LoRa Gateway
+        curr_ble_data_to_slave    = new  uint8_t[size_of_ble];
+    #elif defined(TARGET_MAX32620FTHR) // Slave Device: LoRa Controlled Robot
+        curr_ble_data_from_master = new  uint8_t[size_of_ble];
+        prev_ble_data_from_master = new  uint8_t[size_of_ble];
+    #endif
 /***************************************************************************
  * Grid Eye Sensor Data Buffers
  **************************************************************************/
-#if   defined(TARGET_MAX32630FTHR) // Master Device: BLE-to-LoRa Gateway
-    static char curr_raw_frame_data_from_slave[size_of_grid_eye];
-    static char prev_raw_frame_data_from_slave[size_of_grid_eye];
-    static int16_t conv_frame_data_from_slave[64];
-#elif defined(TARGET_MAX32620FTHR) // Client Device: LoRa Controlled Robot
-    static char curr_raw_frame_data_to_master[size_of_grid_eye];
-    static char prev_raw_frame_data_to_master[size_of_grid_eye];
-    static int16_t conv_frame_data_to_master[64];
-#endif
-
+    #if   defined(TARGET_MAX32630FTHR) // Master Device: BLE-to-LoRa Gateway
+        curr_raw_frame_data_from_slave = new  uint8_t[size_of_grid_eye];
+        prev_raw_frame_data_from_slave = new  uint8_t[size_of_grid_eye];
+        conv_frame_data_from_slave     = new  int16_t[64];
+    #elif defined(TARGET_MAX32620FTHR) // Client Device: LoRa Controlled Robot
+        curr_raw_frame_data_to_master  = new  uint8_t[size_of_grid_eye];
+        prev_raw_frame_data_to_master  = new  uint8_t[size_of_grid_eye];
+        conv_frame_data_to_master      = new  int16_t[64];
+    #endif
 /***************************************************************************
  * GPS Data Buffers
  **************************************************************************/
-#if   defined(TARGET_MAX32630FTHR) // Master Device: BLE-to-LoRa Gateway
-    static char curr_gps_data_from_slave[size_of_gps];
-    static char prev_gps_data_from_slave[size_of_gps];
-#elif defined(TARGET_MAX32620FTHR) // Slave Device: LoRa Controlled Robot
-    static char curr_gps_data_to_master[size_of_gps];
-#endif
-
+    #if   defined(TARGET_MAX32630FTHR) // Master Device: BLE-to-LoRa Gateway
+        curr_gps_data_from_slave = new  uint8_t[size_of_gps];
+        prev_gps_data_from_slave = new  uint8_t[size_of_gps];
+    #elif defined(TARGET_MAX32620FTHR) // Slave Device: LoRa Controlled Robot
+        curr_gps_data_to_master  = new  uint8_t[size_of_gps];
+    #endif
 /***************************************************************************
  * MAX17055 Data Buffers
  **************************************************************************/
-#if   defined(TARGET_MAX32630FTHR) // Master Device: BLE-to-LoRa Gateway
-    static char curr_MAX17055_from_slave[size_of_MAX17055];
-    static char prev_MAX17055_from_slave[size_of_MAX17055];
-#elif defined(TARGET_MAX32620FTHR) // Slave Device: LoRa Controlled Robot
-    static char curr_MAX17055_to_master[size_of_MAX17055];
-#endif
-
+    #if   defined(TARGET_MAX32630FTHR) // Master Device: BLE-to-LoRa Gateway
+        curr_MAX17055_from_slave = new  uint8_t[size_of_MAX17055];
+        prev_MAX17055_from_slave = new  uint8_t[size_of_MAX17055];
+    #elif defined(TARGET_MAX32620FTHR) // Slave Device: LoRa Controlled Robot
+        curr_MAX17055_to_master  = new  uint8_t[size_of_MAX17055];
+    #endif
+    
 /***************************************************************************
  * MAX77650 Data Buffers
  **************************************************************************/
-#if   defined(TARGET_MAX32630FTHR) // Master Device: BLE-to-LoRa Gateway
-    static char curr_MAX77650_from_slave[size_of_MAX77650];
-    static char prev_MAX77650_from_slave[size_of_MAX77650];
-#elif defined(TARGET_MAX32620FTHR) // Slave Device: LoRa Controlled Robot
-    static char curr_MAX77650_to_master[size_of_MAX77650];
-#endif
+    #if   defined(TARGET_MAX32630FTHR) // Master Device: BLE-to-LoRa Gateway
+        curr_MAX77650_from_slave = new  uint8_t[size_of_MAX77650];
+        prev_MAX77650_from_slave = new  uint8_t[size_of_MAX77650];
+    #elif defined(TARGET_MAX32620FTHR) // Slave Device: LoRa Controlled Robot
+        curr_MAX77650_to_master  = new  uint8_t[size_of_MAX77650];
+    #endif
 
 /** 
  * @brief This function constructs a payload buffer that is used in transmitting data in a LoRa Message