我使用的是SDK 5.0.3(在为论坛帖子选择SDK时,这不是一个选项)。USER_CONFIG.h中有一个USER_CONFIG定义,在整个SDK中使用该定义,以允许用户覆盖默认选项。在app.c文件中,大多数函数都使用它来允许用户_config.h中的结构中的自定义配置选项。但是,函数app_easy_gap_start_connection_to_msg_create()不遵循此约定。事实上,最新的DSPS版本完全破解了这个函数,并将其硬编码为使用自定义值。此函数中使用的默认结构包含对建立连接无效的值。更糟糕的是,使用默认值的连接尝试在没有向用户应用发送通知消息的情况下以静默方式失败。用户唯一的选择是修改SDK,这并不理想。您能在下一版本中修复此问题吗?
设备:
嗨,伊班瓦特,
您的消息将在SDK团队中转发,感谢您的指示。您还可以尝试使用_get_active()函数,以便使用适当的值设置消息。
谢谢你的对话
我们也在使用SDK 5.0.3。
我们已经将USER_CONFIG设置为0,因为我们正在制作带有可配置广告的模块(即广告配置不是常量,可以远程控制)-如果我们要用自己的机制覆盖整个广告命令,则无需构建整个广告命令。
我想指出的是,目前还不清楚user_config.h中的哪些常量仅在user_config为1时使用(并且在user_config为0时可以为0,以避免以后的混淆),以及哪些常量是以任何方式使用的,不应该为零。
我们发现,即使user_CONFIG为0,也可以访问user_connection_param_conf和user_default_hnd_conf,但其他常量不能。
为什么要用包装用户配置检查
如果(用户配置){…}
而不是预处理器代码:#如果用户配置
? 使用预处理器代码可以注释掉或完全删除user_config.h中未使用的常量。此外,请注意,user_connection_param_config.time_out是
MS_至_时间段(1250)
默认情况下,但在默认情况下,它是MS_至_时间段(1000)
. 这意味着默认情况下,如果USER_CONFIG设置为0,则函数USER_app_connection和USER_catch_rest_hdnl(case GAPC_PARAM_UPDATED_IND)将看到参数->辅助到
给出“意外”值(代码要求1000ms,但要求1250ms)。你为什么打电话
memcpy(cmd,…);
在任何地方,当源类型与cmd相同时?为什么不:*cmd=默认值。。。;
?嗨,奥伦,
您的大多数指示在新的SDK版本(尚未发布)中得到纠正,现在关于memcpy而不是一个简单的分配,它是大多数SDK团队使用的东西,这是一个偏好问题,据我所知,struct分配和memcpy之间没有任何显著差异。
谢谢你的对话