static T_APP_RESULT gatt_write_recv(uint8_t conn_id, T_SERVER_ID svc_id, uint16_t attrib_index, T_WRITE_TYPE write_type, uint16_t length, uint8_t *p_value, P_FUN_WRITE_IND_POST_PROC *p_write_post_proc) { for (int i = 0; i < g_svc_cnt; i++) { if (g_svc_tbl[i].svc_handle == svc_id) { for (int j = 0; j < g_svc_tbl[i].n_char; j++) { if (g_svc_tbl[i].chars[i].char_handle == attrib_index) { uint16_t att_handle = (g_svc_tbl[i].svc_handle << 8) | g_svc_tbl[i].chars[i].char_handle; struct aciga_ble_gatt_access_ctxt ctx = { .op = ACIGA_BLE_GATT_ACCESS_OP_WRITE_CHR, .data = p_value, .len = length, }; g_svc_tbl[i].chars[i].cb(conn_id, att_handle, &ctx); return APP_RESULT_SUCCESS; } } } } return APP_RESULT_SUCCESS; }这个函数的作用?
时间: 2024-02-15 13:27:03 浏览: 41
gatt_server.zip_Gatt server_between_gatt server_gatt服务_蓝牙gatt
这个函数是用于处理GATT协议中的写入请求的,它会根据传入的参数检查服务和特征值的句柄,如果匹配成功,就会调用相应特征值的回调函数处理写入操作。具体来说,它会遍历服务表(g_svc_tbl),查找服务句柄和特征值句柄是否和传入参数匹配,如果匹配成功,就会调用相应特征值的回调函数处理写入操作,并返回APP_RESULT_SUCCESS表示写入成功。
阅读全文