如何配置DISS_基于Onsemi_RSL10

该DISS的配置是基于onsemi_RSL10,如果想了解有关该板子的信息介绍,可以点击Onsemi低功耗蓝牙soc:RSL10介紹进行了解。

diss:即为设备信息,初始化相关的设备信息之后,连接蓝牙后可以看到该设备的相关设备信息。
 
DISS_DeviceInfo_t 为设备信息结构的初始化,包括长度和数据字符串,通过配置该结构体然后进行初始化即可实现相关的DISS信息。
 

一.diss配置的步骤:

①结构体初始化具体的结构信息:

const struct DISS_DeviceInfo_t deviceInfo =
{
.MANUFACTURER_NAME = {.len = APP_DIS_MANUFACTURER_NAME_LEN, .data = (uint8_t*) APP_DIS_MANUFACTURER_NAME},
.MODEL_NB_STR = {.len = APP_DIS_MODEL_NB_STR_LEN, .data = (uint8_t*) APP_DIS_MODEL_NB_STR},
.SERIAL_NB_STR = {.len = APP_DIS_SERIAL_NB_STR_LEN, .data = (uint8_t*) APP_DIS_SERIAL_NB_STR},
.FIRM_REV_STR = {.len = APP_DIS_FIRM_REV_STR_LEN, .data = (uint8_t*) APP_DIS_FIRM_REV_STR},
.SYSTEM_ID = {.len = APP_DIS_SYSTEM_ID_LEN, .data = (uint8_t*) APP_DIS_SYSTEM_ID},
.HARD_REV_STR = {.len = APP_DIS_HARD_REV_STR_LEN, .data = (uint8_t*) APP_DIS_HARD_REV_STR},
.SW_REV_STR = {.len = APP_DIS_SW_REV_STR_LEN, .data = (uint8_t*) APP_DIS_SW_REV_STR},
.IEEE = {.len = APP_DIS_IEEE_LEN, .data = (uint8_t*) APP_DIS_IEEE},
.PNP = {.len = APP_DIS_PNP_ID_LEN, .data = (uint8_t*) APP_DIS_PNP_ID},
};
具体配置设备的信息如下:

②变量初始化

/* --------------------------------------------------------------------------
* Device Information used for Device Information Server Service (DISS)
* ----------------------------------------------------------------------- */
/* Manufacturer Name Value */
#define APP_DIS_MANUFACTURER_NAME ("Peripheral_HID")
#define APP_DIS_MANUFACTURER_NAME_LEN (14)
 
/* Model Number String Value */
#define APP_DIS_MODEL_NB_STR ("RW-BLE-1.0")
#define APP_DIS_MODEL_NB_STR_LEN (10)
 
/* Serial Number */
#define APP_DIS_SERIAL_NB_STR ("1.0.0.0-LE")
#define APP_DIS_SERIAL_NB_STR_LEN (10)
 
/* Firmware Revision */
#define APP_DIS_FIRM_REV_STR ("6.1.2")
#define APP_DIS_FIRM_REV_STR_LEN (5)
 
/* System ID Value - LSB -> MSB */
#define APP_DIS_SYSTEM_ID ("\x12\x34\x56\xFF\xFE\x9A\xBC\xDE")
#define APP_DIS_SYSTEM_ID_LEN (8)
 
/* Hardware Revision String */
#define APP_DIS_HARD_REV_STR ("1.0.0")
#define APP_DIS_HARD_REV_STR_LEN (5)
 
/* Software Revision String */
#define APP_DIS_SW_REV_STR ("6.3.0")
#define APP_DIS_SW_REV_STR_LEN (5)
 
/* IEEE */
#define APP_DIS_IEEE ("\xFF\xEE\xDD\xCC\xBB\xAA")
#define APP_DIS_IEEE_LEN (6)
 
/**
* PNP ID Value - LSB -> MSB
* Vendor ID Source : 0x02 (USB Implementer锟絪 Forum assigned Vendor ID value)
* Vendor ID : 0x1057 (ON Semiconductor)
* Product ID : 0x0040
* Product Version : 0x0300
*/
 
#define APP_DIS_PNP_ID ("\x02\x57\x10\x40\x00\x00\x03")
#define APP_DIS_PNP_ID_LEN (7)
#define APP_DIS_FEATURES (DIS_ALL_FEAT_SUP)

③调用函数把结构体传入

static void DISS_Setup(void) {
DISS_Initialize(APP_DIS_FEATURES, (const struct DISS_DeviceInfo_t*) &deviceInfo);
}
函数实例:
 
实例:
 
int DISS_Initialize(uint16_t features, const struct DISS_DeviceInfo_t *deviceInfo)
{
memset(&diss_env, 0, sizeof(DISS_Env_t));

diss_env.features = features;
diss_env.deviceInfo = deviceInfo;


/*
* Add DISS message handlers
*/
/* General */
MsgHandler_Add(TASK_ID_DISS, DISS_MsgHandler);
MsgHandler_Add(GAPM_CMP_EVT, DISS_MsgHandler);
MsgHandler_Add(GAPM_PROFILE_ADDED_IND, DISS_MsgHandler);
MsgHandler_Add(DISS_SET_VALUE_RSP, DISS_MsgHandler);
MsgHandler_Add(DISS_VALUE_REQ_IND, DISS_DeviceInfoValueReqInd);

return 0;
}
 
 

二.效果图:

连上设备之后,可以查看到你设置的设备信息,上图两个信息为上面红色字体的代码所设置的:

DISS服务
Peripheral_HIDRW-BLE-1.0

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论