KAA 创建失败 kaa_configuration_manager_set_root_receiver

KAA Failed to create kaa_configuration_manager_set_root_receiver

我想控制端点(Raspberry pi 3)的GPIO。

我尝试将两个 KAA 演示应用程序合并为一个。 ("Cassandra data analytics" 和 "Data collection")

由于Raspberry Pi只有一个demo,我选择"Cassandra data analytics"。

而且我已经使用 "Data collection demo" 从 kaa 服务器控制端点。

现在,我想从 "Cassandra data analytics" 上的 kaa 服务器实现端点的控制 GPIO。

这是我的程序:

  1. 在 WEB UI.
  2. 上选择应用 -> "Cassandra data analytics"
  3. 添加新架构(配置架构)遵循"Data collection demo" 我将温度修改为GPIO_PIN_4(整数类型)。
  4. 生成SDK。
  5. 复制*tar.gz到"libs"文件夹
  6. 修改kaa_demo.c,

    1. 添加头文件

      #include "extensions/configuration/kaa_configuration_manager.h"
      #include "extensions/configuration/kaa_configuration_manager.c"
      
    2. main()

      中配置通知管理器
      kaa_configuration_root_receiver_t receiver = {
          .context = NULL,
          .on_configuration_updated = on_configuration_updated
      };
      
      error_code = kaa_configuration_manager_set_root_receiver(
          kaa_client_get_context(kaa_client)->configuration_manager,
          &receiver);
      

在这里,我得到了error_code = -4

有谁能告诉我如何解决这个错误吗? 谢谢

错误代码在 src/kaa/kaa_error.h 文件中定义。特定错误 -4 定义为 KAA_ERR_BADPARAM,这意味着其中一个参数错误。

如果检查 source code for kaa_configuration_manager_set_root_receiver 函数,很明显其中一个参数是 NULL&receiver保证非空,所以错误的参数一定是kaa_client_get_context(kaa_client)->configuration_manager.

这可能是由于禁用了配置扩展。 -DWITH_EXTENSION_CONFIGURATION=ON 必须传递给 C SDK cmake 命令。检查您的 CMake 文件并将 WITH_EXTENSION_CONFIGURATION 值更改为 ON.