This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Central multilink explanation

in the ble multilink central example i'm not understanding where the functions in client_handling.c are exercised some don't seem to be used in main or client_handling (client_handling_dm_event_handler() for example)

Additionally in client_handling.c:

#define MULTILINK_PERIPHERAL_BASE_UUID    {{0xB3, 0x58, 0x55, 0x40, 0x50, 0x60, 0x11, 0xe3, 0x8f, 0x96, 0x08, 0x00, 0x00, 0x00, 0x9a, 0x66}}  

#define MULTILINK_PERIPHERAL_SERVICE_UUID 0x9001                                            /**< Peripheral service UUID. */
#define MULTILINK_PERIPHERAL_CHAR_UUID    0x900A                                            /**< Peripheral characterisctics UUID. */

but in the peripheral example this base, char, and service uuid are different so what is are these definitions being used for?

from ble_lbs_c.h:

#define LBS_UUID_BASE        {0x23, 0xD1, 0xBC, 0xEA, 0x5F, 0x78, 0x23, 0x15, \
                              0xDE, 0xEF, 0x12, 0x12, 0x00, 0x00, 0x00, 0x00}
#define LBS_UUID_SERVICE     0x1523
#define LBS_UUID_BUTTON_CHAR 0x1524
#define LBS_UUID_LED_CHAR    0x1525
  • Hi,

    The client_handling.c was used back in SDK 10 where we had both a ble_app_multilink_peripheral and a ble_app_multilink_central example.

    But, with SDK 11 the Multi-instance handling of the Service client modules was greatly improved, and the client service discovery handling was moved into the main application context. The ble_app_multilink_central example was modified to demonstrate multiple client instances in a better way. The ble_app_multilink_peripheral example was removed, and ble_app_blinky(with the LBS service) replaced the role as the peripheral.

    The definitions in client_handling.c is therefore no longer being used in SDK 11 and upwards, but client_handling.c is still there for backwards compatibility reasons for those who still uses these defines in their old projects.

Related