Adding diss to peripheral_server example

Hello. I have added the device information service server to the peripheral_server example. Two files are added: diss.h and diss.c. The DISS_MESSAGE_HANDLER list is missing and I get 20 compilation errors. Are there updated diss files available? How do I go about correcting these errors and implementing all the steps for adding standard profiles outlined in the RSL10 Sample Code User’s Guide?

Welcome to the online community forum!

A couple of items:

  1. I’d suggest using ble_diss.c and ble_diss.h (following the convention for the battery service ble_bass.c/.h, etc.) There are already diss.h/.c files in the CMSIS pack so this should help avoid confusion.

  2. The instructions in the RSL10_sample_code_users_guide may be outdated. In place of steps 3 and 4 on page 9, click on the projects .rteconfig file, and on the Components tab open the Device → Bluetooh Profiles menus and check the box next to DISS. This will include the package’s diss.h and diss.c files in the build.

  3. Now you will need to continue with the remaining steps 5-10. In Step 5 you define DISS_MESSAGE_HANDLER in your newly created ble_diss.h file. It would look something like:

It may help to refer to ble_bass.c and .h to see how that service was added to the peripheral_server example when filling in the rest of the code in ble_diss.c, ble_diss.h, and editing app.h. app_init.c, and app.c or app_process.c

Hi, Jamie:

Thank you very much for your reply. It is much appreciated. You are correct, the files were named ble_diss.h and ble_diss.c. My mistake. I am in the process of incorporating your suggestion for the DISS_MESSAGE_HANDLER_LIST. I am also continuing to look at ble_bass.h and ble_bass.c. One thing that I noticed is that when you add standard services like DISS using the the peripheral_server.rteconfig, it drops new ble_bass files that are different from the example and will not compile. I had to delete these files from the RTE->Device directory. That was surprising to me.