2017-01-11 2 views
0
These above are the codes.     
    demo_printf("Sampled NodeId %d %lu\n", NodeId,"Sampled SignalSTR %d %lu\n", Signal,"Sampled FirmwareVER %d %lu\n", FirmwareVER,"Sampled battery %f %lu\n", batt,timestamp); 
    kaa_error_t error = kaa_logging_add_record(
      kaa_client_get_context(kaa_client)->log_collector, 
      log_record, NULL); 

Ниже приведены ошибки. Я не понимаю, что такое ошибки. Новое на языке C до сих пор ... Похоже, что для моих переменных с плавающей точкой я не могу использовать «%» для выполнения своей функции random(). Ниже приведены следующие погрешности:Что это за ошибки?

/home/pi/try/client/c/src/kaa_demo.c: In function ‘send_temperature’: 
/home/pi/try/client/c/src/kaa_demo.c:72:22: error: invalid operands to binary % (have ‘int’ and ‘double’) 
    float batt = rand() % 5.0; 
        ^
/home/pi/try/client/c/src/kaa_demo.c:73:21: error: invalid operands to binary % (have ‘int’ and ‘double’) 
    float cel = rand() % 5.0; 
        ^
/home/pi/try/client/c/src/kaa_demo.c:74:20: error: invalid operands to binary % (have ‘int’ and ‘double’) 
    float wt = rand() % 5.0;              // kaa_logging_data_collection_t is the structure defined to contain temperature and time_stamp 
        ^
/home/pi/try/client/c/src/kaa_demo.c:81:12: error: ‘kaa_logging_data_collection_t’ has no member named ‘NodeId’ 
    log_record->NodeId = kaa_string_copy_create("Screws"); 
      ^
/home/pi/try/client/c/src/kaa_demo.c:82:15: error: ‘kaa_logging_data_collection_t’ has no member named ‘SignalSTR’ 
    log_record->SignalSTR = Signal; 
      ^
/home/pi/try/client/c/src/kaa_demo.c:83:12: error: ‘kaa_logging_data_collection_t’ has no member named ‘FirmwareVER’ 
    log_record->FirmwareVER = kaa_string_copy_create("Linux KIDS"); 
      ^
/home/pi/try/client/c/src/kaa_demo.c:84:12: error: ‘kaa_logging_data_collection_t’ has no member named ‘OnlineStat’ 
    log_record->OnlineStat = status; 
+0

Хотел бы уточнить некоторые из этих ошибок с вами и что они означают? @Mikel F, извините за причиненные неудобства. –

+1

Я надеюсь, что '' X 'не имеет члена с именем' Y'' довольно просто ... – immibis

+0

Но я добавил членов в запись журнала, где kaa_logging_data_collection_t сохраняет их все. –

ответ

0

Ваши первые три ошибки вызваны тем, что оператор модуля не работает с вещественным числом. и вы используете реальное число, чтобы разделить вывод rand(), который является целым числом. Тема объясняется здесь: (Why does modulus division (%) only work with integers?)

Можете ли вы разделить структуру (kaa_logging_data_collection_t) элементы: Если вы можете. то только каждый может быть уверен, почему эти ошибки приходят сюда.

+0

Я не мог найти эту функцию или структуру. Возможно ли это, если она указана на другую переменную или адрес, содержащий температуру и временную метку? –

+0

О, мужчина! я понял ! –

+1

Вам нужно найти структуру, потому что тогда вы только убедитесь, что она содержит, и как получить доступ к этим элементам, иначе вы не сможете получить к ним доступ должным образом. Возможно, что эти элементы присутствуют в структуре, но к ним обращаются через другую указатель или переменную DE-ссылки. Как и перед использованием машины, вы должны знать, каковы ее компоненты и что они делают индивидуально, Вы можете найти определение этой структуры в пользовательских файлах заголовков. Надеюсь, это поможет –