KAA Не удалось создать kaa_configuration_manager_set_root_receiver

Я хочу контролировать GPIO конечной точки (Raspberry pi 3).

Я пытаюсь объединить два демонстрационных приложения KAA в одно. («Аналитика данных Cassandra» и «Сбор данных»)

Поскольку для Raspberry Pi есть только одна демонстрация, я выбираю «Аналитика данных Cassandra».

И я использовал «демонстрацию сбора данных» для управления конечной точкой с сервера kaa.

Теперь я хочу реализовать управление GPIO конечной точки с сервера kaa на «Аналитике данных Cassandra».

Вот моя процедура:

  1. Выберите Приложение -> «Аналитика данных Cassandra» в веб-интерфейсе.
  2. Добавьте новую схему (схемы конфигурации), следуйте «Демонстрации сбора данных», и я изменю температуру на GPIO_PIN_4 (целочисленный тип).
  3. Сгенерируйте SDK.
  4. Скопируйте *tar.gz в папку "libs"
  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

Кто-нибудь может сказать мне, как решить эту ошибку? Спасибо


c kaa
person Cloud Lee    schedule 07.07.2017    source источник


Ответы (1)


Коды ошибок определены в src/kaa/kaa_error.h. Конкретная ошибка -4 определяется как KAA_ERR_BADPARAM, что означает, что один из параметров неверен.

Если вы отметите исходный код функции kaa_configuration_manager_set_root_receiver становится очевидным, что одним из параметров является NULL. &receiver гарантированно будет ненулевым, поэтому неверным параметром должен быть kaa_client_get_context(kaa_client)->configuration_manager.

Вероятно, это связано с тем, что расширение конфигурации отключено. -DWITH_EXTENSION_CONFIGURATION=ON необходимо передать команде cmake C SDK. Проверьте файл CMake и измените значение WITH_EXTENSION_CONFIGURATION на ON.

person Alexey Shmalko    schedule 10.07.2017