send(msg(double)); gives an error



  • I have defiened a MyMessage as this:

    MyMessage msgSpeed(WIND_CHILD_ID, V_WIND);
    

    Present it like this:

    present(WIND_CHILD_ID, S_WIND);
    

    And I get an error for this row since windSpeed is a double.

    send(msgSpeed.set(windSpeed));
    

    Get the error message:
    Wind:94: error: call of overloaded 'set(double&)' is ambiguous

    Is it so that I can't send anything other than an INT for windspeed?


  • Hero Member

    @Martin-Tellblom It depends on the type of the variable (windspeed) you are trying to send how you send it. sometimes you need to specify decimals. See below taken from the API

    // Setters for payload
    MyMessage& set(void* payload, uint8_t length);
    MyMessage& set(const char* value);
    MyMessage& set(uint8_t value);
    MyMessage& set(float value, uint8_t decimals);
    MyMessage& set(unsigned long value);
    MyMessage& set(long value);
    MyMessage& set(unsigned int value);
    MyMessage& set(int value);
    


  • Thank you @AWI , I missed that one.


Log in to reply
 

371
Online

6.7k
Users

7.6k
Topics

80.5k
Posts

Looks like your connection to MySensors Forum was lost, please wait while we try to reconnect.