I'm trying to modify Characteristic 3 of the Simple_Peripheral CC1350 example project so that I can only access it via Read's, and when it gets the read command, it will send a 3,000 Byte array over the air. The documentation for the Simple_Peripheral example project is scattered and isn't the best at describing what every macro does. When I tried to up the amount of data it sends, sending 22 bytes is the highest it seems to go here.
I'm looking to avoid having to write 3,000 / 22 bytes each = 136 characteristics that send each individual piece of my data. Thanks for the help,
Here are what I think the values that dictate this are in my project:
In simple_gatt_profile.h, I have this on line 57:
#define SIMPLEPROFILE_CHAR3_LEN 3000
In simple_gatt_profile.c, I have this starting on line 157:
// Simple Profile Characteristic 3 Properties static uint8 simpleProfileChar3Props = GATT_PROP_READ; // Characteristic 3 Value static uint8 simpleProfileChar3[SIMPLEPROFILE_CHAR3_LEN]; //static uint8 simpleProfileChar3 = 0; // Simple Profile Characteristic 3 User Description static uint8 simpleProfileChar3UserDesp[17] = "Characteristic 3";
And in simple_peripheral.c, I have this at line 103:
/********************************************************************* * CONSTANTS */ // Advertising interval when device is discoverable (units of 625us, 160=100ms) #define DEFAULT_ADVERTISING_INTERVAL 160 // Limited discoverable mode advertises for 30.72s, and then stops // General discoverable mode advertises indefinitely #define DEFAULT_DISCOVERABLE_MODE GAP_ADTYPE_FLAGS_GENERAL #ifndef FEATURE_OAD // Minimum connection interval (units of 1.25ms, 80=100ms) if automatic // parameter update request is enabled #define DEFAULT_DESIRED_MIN_CONN_INTERVAL 80 // Maximum connection interval (units of 1.25ms, 800=1000ms) if automatic // parameter update request is enabled #define DEFAULT_DESIRED_MAX_CONN_INTERVAL 800 #else //!FEATURE_OAD // Minimum connection interval (units of 1.25ms, 8=10ms) if automatic // parameter update request is enabled #define DEFAULT_DESIRED_MIN_CONN_INTERVAL 8 // Maximum connection interval (units of 1.25ms, 8=10ms) if automatic // parameter update request is enabled #define DEFAULT_DESIRED_MAX_CONN_INTERVAL 8 #endif // FEATURE_OAD // Slave latency to use if automatic parameter update request is enabled #define DEFAULT_DESIRED_SLAVE_LATENCY 0 // Supervision timeout value (units of 10ms, 1000=10s) if automatic parameter // update request is enabled #define DEFAULT_DESIRED_CONN_TIMEOUT 6000 // Whether to enable automatic parameter update request when a connection is // formed #define DEFAULT_ENABLE_UPDATE_REQUEST GAPROLE_LINK_PARAM_UPDATE_INITIATE_BOTH_PARAMS // Connection Pause Peripheral time value (in seconds) #define DEFAULT_CONN_PAUSE_PERIPHERAL 45 // How often to perform periodic event (in msec) #define SBP_PERIODIC_EVT_PERIOD 5000 // Type of Display to open #if !defined(Display_DISABLE_ALL) #ifdef USE_CORE_SDK #if defined(BOARD_DISPLAY_USE_LCD) && (BOARD_DISPLAY_USE_LCD!=0) #define SBP_DISPLAY_TYPE Display_Type_LCD #elif defined (BOARD_DISPLAY_USE_UART) && (BOARD_DISPLAY_USE_UART!=0) #define SBP_DISPLAY_TYPE Display_Type_UART #else // !BOARD_DISPLAY_USE_LCD && !BOARD_DISPLAY_USE_UART #define SBP_DISPLAY_TYPE 0 // Option not supported #endif // BOARD_DISPLAY_USE_LCD && BOARD_DISPLAY_USE_UART #else // !USE_CORE_SDK #if !defined(BOARD_DISPLAY_EXCLUDE_LCD) #define SBP_DISPLAY_TYPE Display_Type_LCD #elif !defined (BOARD_DISPLAY_EXCLUDE_UART) #define SBP_DISPLAY_TYPE Display_Type_UART #else // BOARD_DISPLAY_EXCLUDE_LCD && BOARD_DISPLAY_EXCLUDE_UART #define SBP_DISPLAY_TYPE 0 // Option not supported #endif // !BOARD_DISPLAY_EXCLUDE_LCD || !BOARD_DISPLAY_EXCLUDE_UART #endif // USE_CORE_SDK #else // BOARD_DISPLAY_USE_LCD && BOARD_DISPLAY_USE_UART #define SBP_DISPLAY_TYPE 0 // No Display #endif // Display_DISABLE_ALL #ifdef FEATURE_OAD // The size of an OAD packet. #define OAD_PACKET_SIZE ((OAD_BLOCK_SIZE) + 2) #endif // FEATURE_OAD // Task configuration #define SBP_TASK_PRIORITY 1 #ifndef SBP_TASK_STACK_SIZE #define SBP_TASK_STACK_SIZE 644 #endif // Internal Events for RTOS application #define SBP_STATE_CHANGE_EVT 0x0001 #define SBP_CHAR_CHANGE_EVT 0x0002 #define SBP_PERIODIC_EVT 0x0004 #define SBP_CONN_EVT_END_EVT 0x0008