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

Это не отладочная служба. См. [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 не требуется. sendRadio и println хочу char*, и data уже есть char*.

+0

спасибо, я пробовал это на первом месте, он компилируется, но потом я получаю это на 'serial Temperature: 28.7500000000 Ошибка при ожидании пакетов. error = 1 Температура: 28.7500000000 Ошибка при ожидании пакетов. error = 1' и в соответствии с функцией send '1 ', если произошла ошибка' – ndarkness

+0

Что такое' serial Temperature'? –

+0

Согласно отправке комментарии 'данных представляет собой последовательность цифр, представляющее значение байт * \t \t \t, выраженное в шестнадцатеричном значении (т.е. радио TX 12A435 - полезная нагрузка * \t \t \t состоит из следующего потока байт: 0x12 , 0xA4, 0x35 - 6 цифр * \t \t \t преобразуется в 3 байта) '' – ndarkness