2016-04-05 3 views
0

APIを使用してワイヤレスモジュールを介してデータを送信していますが、タイプに苦労しているため、データを送信できないと思います。私は間違っている?ポインタとキャストを迷惑にします

// define data to send 
    char data[] = "00"; 

    // Getting Temperature that is 28.75 
    float temperature = RTC.getTemperature(); 

    // HEADER,void float2String(float fl, char str[], int N); 
    Utils.float2String (temperature, data, 2); 

    // HEADER,uint8_t str2hex(char* str); 
    uint8_t dataAux[4]; 

    dataAux= (char) Utils.str2hex(data); 

    USB.println(dataAux); 
    // HEADER,sendRadio(char * message) 
    error = sendRadio(dataAux); 

それから私はこのコンパイラエラーを得た:

txP2PTemp.pde: In function 'void loop()': 
    txP2PTemp.pde:572:31: error: incompatible types in assignment of 'uint8_t {aka unsigned char}' to 'uint16_t* [3] {aka unsigned int* [3]}' 
    txP2PTemp.pde:576:36: error: no matching function for call to 'W::sendRadio(uint16_t* [3])' 
note: uint8_t W::sendRadio(char*) no known conversion for argument 1 from 'uint16_t* [3] {aka unsigned int* [3]}' to 'char*'note: uint8_t W::sendRadio(char*) 
+0

ArduinoはCではありません! – Olaf

+1

問題は何ですか? –

+2

これはデバッグサービスではありません。 See [ask]。 – Olaf

答えて

1

おそらく、この必要があります。

// define data to send 
    char data[20]; // 20 char buffer (should be enough here) 

    // Getting Temperature that is 28.75 
    float temperature = RTC.getTemperature(); 

    // HEADER,void float2String(float fl, char str[], int N); 
    Utils.float2String (temperature, data, 2); 

    USB.println(data); 
    // HEADER,sendRadio(char * message) 
    error = sendRadio(data); 

dataAuxは必要ありません。 sendRadioprintlnchar*dataはすでにchar*です。

+0

ありがとう、私は最初にそれをコンパイルしましたが、次にこれを 'シリアル温度:28.7500000000 パケット待ちのエラーで取得しました。エラー= 1 温度:28.7500000000 パケットの待機中にエラーが発生しました。 error = 1'となり、エラーがあった場合に '1 'を送信します。 – ndarkness

+0

' Serial Temperature'とは何ですか?送信コメント 'データによれば –

+0

は * \t \t \tは16進数の値で表現さバイトストリームの値を表す数字の配列(すなわち、無線TX 12A435ある - ペイロード * \t \t \t次のバイトストリームにより構成されている:0x12を、0xA4、0x35 - 6桁 * \t \t \t 3バイトで変換された ' – ndarkness

関連する問題