2017-07-07 52 views
0

我想控制端点(Raspberry Pi 3)的GPIO。KAA无法创建kaa_configuration_manager_set_root_receiver

我尝试将两个KAA演示应用程序合并到一个。 (“Cassandra数据分析”和“数据收集”)

由于Raspberry Pi只有一个演示,因此我选择“Cassandra数据分析”。

我已经使用“数据收集演示”来控制kaa服务器的端点。

现在,我想在“Cassandra数据分析”中实现从kaa服务器端控制端点GPIO。

这里是我的方法:

  1. 选择应用程序 - >上WEB UI “卡桑德拉数据分析”。
  2. 按照“数据收集演示” 添加新模式(配置模式),并将温度修改为GPIO_PIN_4(整数类型)。
  3. 生成SDK。
  4. 复制*的tar.gz到 “库” 文件夹
  5. 修改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

有没有人能告诉我怎么解决这个问题? 谢谢

回答

0

错误代码在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

+0

这个答案是正确的,tks –