dis_app.c 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. #include "app_common.h"
  2. #include "ble.h"
  3. #include "dis_app.h"
  4. #include <api-hal-version.h>
  5. #if ((BLE_CFG_DIS_SYSTEM_ID != 0) || (CFG_MENU_DEVICE_INFORMATION != 0))
  6. static const uint8_t system_id[BLE_CFG_DIS_SYSTEM_ID_LEN_MAX] = {
  7. (uint8_t)((DISAPP_MANUFACTURER_ID & 0xFF0000) >> 16),
  8. (uint8_t)((DISAPP_MANUFACTURER_ID & 0x00FF00) >> 8),
  9. (uint8_t)(DISAPP_MANUFACTURER_ID & 0x0000FF),
  10. 0xFE,
  11. 0xFF,
  12. (uint8_t)((DISAPP_OUI & 0xFF0000) >> 16),
  13. (uint8_t)((DISAPP_OUI & 0x00FF00) >> 8),
  14. (uint8_t)(DISAPP_OUI & 0x0000FF)
  15. };
  16. #endif
  17. #if ((BLE_CFG_DIS_IEEE_CERTIFICATION != 0) || (CFG_MENU_DEVICE_INFORMATION != 0))
  18. static const uint8_t ieee_id[BLE_CFG_DIS_IEEE_CERTIFICATION_LEN_MAX] = {
  19. 0xFE, 0xCA, 0xFE, 0xCA, 0xFE, 0xCA, 0xFE, 0xCA,
  20. 0xFE, 0xCA, 0xFE, 0xCA, 0xFE, 0xCA, 0xFE, 0xCA,
  21. 0xFE, 0xCA, 0xFE, 0xCA, 0xFE, 0xCA, 0xFE, 0xCA,
  22. 0xFE, 0xCA, 0xFE, 0xCA, 0xFE, 0xCA, 0xFE, 0xCA,
  23. };
  24. #endif
  25. #if ((BLE_CFG_DIS_PNP_ID != 0) || (CFG_MENU_DEVICE_INFORMATION != 0))
  26. static const uint8_t pnp_id[BLE_CFG_DIS_PNP_ID_LEN_MAX] = {
  27. 0x1,
  28. 0xAD, 0xDE,
  29. 0xDE, 0xDA,
  30. 0x01, 0x00
  31. };
  32. #endif
  33. void DISAPP_Init(void) {
  34. DIS_Data_t dis_information_data;
  35. #if ((BLE_CFG_DIS_MANUFACTURER_NAME_STRING != 0) || (CFG_MENU_DEVICE_INFORMATION != 0))
  36. /**
  37. * Update MANUFACTURER NAME Information
  38. *
  39. * @param UUID
  40. * @param pPData
  41. * @return
  42. */
  43. dis_information_data.pPayload = (uint8_t*)DISAPP_MANUFACTURER_NAME;
  44. dis_information_data.Length = sizeof(DISAPP_MANUFACTURER_NAME);
  45. DIS_UpdateChar(MANUFACTURER_NAME_UUID, &dis_information_data);
  46. #endif
  47. #if ((BLE_CFG_DIS_MODEL_NUMBER_STRING != 0) || (CFG_MENU_DEVICE_INFORMATION != 0))
  48. /**
  49. * Update MODEL NUMBERInformation
  50. *
  51. * @param UUID
  52. * @param pPData
  53. * @return
  54. */
  55. const char* name = api_hal_version_get_device_name_ptr();
  56. dis_information_data.pPayload = (uint8_t*)name;
  57. dis_information_data.Length = strlen(name) + 1;
  58. DIS_UpdateChar(MODEL_NUMBER_UUID, &dis_information_data);
  59. #endif
  60. #if ((BLE_CFG_DIS_SERIAL_NUMBER_STRING != 0) || (CFG_MENU_DEVICE_INFORMATION != 0))
  61. /**
  62. * Update SERIAL NUMBERInformation
  63. *
  64. * @param UUID
  65. * @param pPData
  66. * @return
  67. */
  68. dis_information_data.pPayload = (uint8_t*)DISAPP_SERIAL_NUMBER;
  69. dis_information_data.Length = sizeof(DISAPP_SERIAL_NUMBER);
  70. DIS_UpdateChar(SERIAL_NUMBER_UUID, &dis_information_data);
  71. #endif
  72. #if ((BLE_CFG_DIS_HARDWARE_REVISION_STRING != 0) || (CFG_MENU_DEVICE_INFORMATION != 0))
  73. /**
  74. * Update HARDWARE REVISION NUMBERInformation
  75. *
  76. * @param UUID
  77. * @param pPData
  78. * @return
  79. */
  80. dis_information_data.pPayload = (uint8_t*)DISAPP_HARDWARE_REVISION_NUMBER;
  81. dis_information_data.Length = sizeof(DISAPP_HARDWARE_REVISION_NUMBER);
  82. DIS_UpdateChar(HARDWARE_REVISION_UUID, &dis_information_data);
  83. #endif
  84. #if ((BLE_CFG_DIS_FIRMWARE_REVISION_STRING != 0) || (CFG_MENU_DEVICE_INFORMATION != 0))
  85. /**
  86. * Update FIRMWARE REVISION NUMBERInformation
  87. *
  88. * @param UUID
  89. * @param pPData
  90. * @return
  91. */
  92. dis_information_data.pPayload = (uint8_t*)DISAPP_FIRMWARE_REVISION_NUMBER;
  93. dis_information_data.Length = sizeof(DISAPP_FIRMWARE_REVISION_NUMBER);
  94. DIS_UpdateChar(FIRMWARE_REVISION_UUID, &dis_information_data);
  95. #endif
  96. #if ((BLE_CFG_DIS_SOFTWARE_REVISION_STRING != 0) || (CFG_MENU_DEVICE_INFORMATION != 0))
  97. /**
  98. * Update SOFTWARE REVISION NUMBERInformation
  99. *
  100. * @param UUID
  101. * @param pPData
  102. * @return
  103. */
  104. dis_information_data.pPayload = (uint8_t*)DISAPP_SOFTWARE_REVISION_NUMBER;
  105. dis_information_data.Length = sizeof(DISAPP_SOFTWARE_REVISION_NUMBER);
  106. DIS_UpdateChar(SOFTWARE_REVISION_UUID, &dis_information_data);
  107. #endif
  108. #if ((BLE_CFG_DIS_SYSTEM_ID != 0) || (CFG_MENU_DEVICE_INFORMATION != 0))
  109. /**
  110. * Update SYSTEM ID Information
  111. *
  112. * @param UUID
  113. * @param pPData
  114. * @return
  115. */
  116. dis_information_data.pPayload = (uint8_t *)system_id;
  117. dis_information_data.Length = BLE_CFG_DIS_SYSTEM_ID_LEN_MAX;
  118. DIS_UpdateChar(SYSTEM_ID_UUID, &dis_information_data);
  119. #endif
  120. #if ((BLE_CFG_DIS_IEEE_CERTIFICATION != 0) || (CFG_MENU_DEVICE_INFORMATION != 0))
  121. /**
  122. * Update IEEE CERTIFICATION ID Information
  123. *
  124. * @param UUID
  125. * @param pPData
  126. * @return
  127. */
  128. dis_information_data.pPayload = (uint8_t *)ieee_id;
  129. dis_information_data.Length = BLE_CFG_DIS_IEEE_CERTIFICATION_LEN_MAX;
  130. DIS_UpdateChar(IEEE_CERTIFICATION_UUID, &dis_information_data);
  131. #endif
  132. #if ((BLE_CFG_DIS_PNP_ID != 0) || (CFG_MENU_DEVICE_INFORMATION != 0))
  133. /**
  134. * Update PNP ID Information
  135. *
  136. * @param UUID
  137. * @param pPData
  138. * @return
  139. */
  140. dis_information_data.pPayload = (uint8_t *)pnp_id;
  141. dis_information_data.Length = BLE_CFG_DIS_PNP_ID_LEN_MAX;
  142. DIS_UpdateChar(PNP_ID_UUID, &dis_information_data);
  143. #endif
  144. }