2017-01-11 5 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言語の新機能...私のfloat変数のように、私は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

最初の3つのエラーは、モジュラス演算子が実数では機能しないことが原因です。整数であるrand()の出力を実数で除算しています。トピックは、ここで説明されています (Why does modulus division (%) only work with integers?

あなたが構造(kaa_logging_data_collection_t)の要素を共有してくださいすることができ: することができます場合。誰もがなぜこれらのエラーがここに来るのかを確かめることができます。

+0

温度やタイムスタンプを含む別の変数やアドレスを指しているように、この関数や構造体を見つけることができませんでしたか? –

+0

ああ男!わかった ! –

+1

構造体を見つける必要があります。なぜなら、構造体に含まれているものと、それらの要素にアクセスする方法のみを確実に理解できるからです。そうでなければ、正しくアクセスできなくなるからです。これらの要素は構造内に存在する可能性がありますが、他のポインタやDE参照変数によってアクセスされている可能性があります。 マシンを使用する前と同じように、コンポーネントとその機能を個別に把握する必要があります。 カスタムヘッダファイルでこの構造体の定義を検索できます。 ほしいと思っています。 –

関連する問題