我正在使用SDK 5.0.3(在为论坛帖子中选择SDK时不是一个选项)。user_config中有一个user_config定义,它在整个SDK中使用,以允许用户覆盖默认选项。在文件App.c中的大多数函数都使用它来允许从user_config.h中的结构中的自定义配置选项。但是,函数app_easy_gap_start_connection_to_msg_create()不遵循此约定。实际上,最新的DSP释放完全破解了这个函数并硬编码它以使用自定义值。此函数中使用的默认结构包含用于建立连接无效的值。更糟糕的是,使用默认值的连接尝试默默地失败,没有向用户应用程序的通知消息。用户唯一的选项是修改不理想的SDK。你能在下一个发布中解决这个问题吗?
设备:
嗨Eanswart,
您的邮件在SDK团队中转发,谢谢您的表明。您还可以尝试使用_get_active()函数以将邮件设置为适当的值。
谢谢mt_dialog.
我们也使用SDK 5.0.3。
We have set USER_CONFIG to 0 since we are making modules with configurable advertising (i.e. the advertising conf is not constant and can be controlled remotely) - There is no need to build the whole advertising command if we are going to override it anyways with our own mechanism.
我想提一下,当user_config为1时,user_config.h中的常数仅使用哪个常量(并且当user_config为0以避免稍后混淆时,并且无论如何使用哪个常数,不应无效。
我们发现即使user_config为0,也可以访问user_connection_param_conf和user_default_hnd_conf,但其他常量也不能。
为什么要包装user_config检查
if(user_config){...}
而不是预处理器代码:#if user_config
?使用预处理器代码将允许完全注释或删除未使用的user_config.h中的常量。此外,请注意user_connection_param_config.time_out是
MS_TO_TIMERUNITS(1250)
默认情况下,但在default_param_update_cmd中它是MS_TO_TIMERUNITS(1000)
。这意味着默认情况下,如果user_config设置为0,则函数user_app_connection和user_catch_rest_hdnl(case gapc_param_updated_ind)将看到param-> sup_to.
提供“意外”的值(代码请求1000ms但预计1250ms)。你为什么叫
memcpy(cmd,......);
到处都是,当源类型与cmd相同时?为什么不:* cmd =默认_...;
?嗨oren,
您的大多数迹象都在新的SDK发布(尚未发布)中纠正,现在关于Memcpy而不是简单的分配,它是从大多数SDK团队中使用的东西,这是一个偏好,而且据我所知知道结构分配与Memcpy之间没有任何显着差异。
谢谢mt_dialog.