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
Diff: global_buffers.h
- Revision:
- 26:69aba05f010f
- Parent:
- 25:1a031add188a
- Child:
- 27:6b549f838f0a
diff -r 1a031add188a -r 69aba05f010f global_buffers.h --- 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