@Rockvole - your code doesnât compile in the cloud for the Spark Core.
I changed all Spark references to Particle and removed the deprecated â&â from your variables, eg:
// Register Spark variables
Spark.variable(âipâ, &ip_display, STRING);
Here are the cloud compiler errors:
firmware.cpp: In function 'void setup()':
firmware.cpp:105:63: error: no matching function for call to 'CloudClass::variable(const char [12], double&, const CloudVariableTypeDouble&)'
pinMode(CALIBRATE_BTN, INPUT_PULLUP);
^
firmware.cpp:105:63: note: candidates are:
In file included from ../wiring/inc/spark_wiring.h:48:0,
from ./inc/application.h:36,
from firmware.cpp:2:
../wiring/inc/spark_wiring_cloud.h:48:24: note: static bool CloudClass::variable(const char*, const int&)
static inline bool variable(const char* varKey, const int& var)
^
../wiring/inc/spark_wiring_cloud.h:48:24: note: candidate expects 2 arguments, 3 provided
../wiring/inc/spark_wiring_cloud.h:54:24: note: static bool CloudClass::variable(const char*, const int32_t&)
static inline bool variable(const char* varKey, const int32_t& var)
^
../wiring/inc/spark_wiring_cloud.h:54:24: note: candidate expects 2 arguments, 3 provided
../wiring/inc/spark_wiring_cloud.h:59:24: note: static bool CloudClass::variable(const char*, const uint32_t&)
static inline bool variable(const char* varKey, const uint32_t& var)
^
../wiring/inc/spark_wiring_cloud.h:59:24: note: candidate expects 2 arguments, 3 provided
../wiring/inc/spark_wiring_cloud.h:64:24: note: static bool CloudClass::variable(const char*, const double&)
static inline bool variable(const char* varKey, const double& var)
^
../wiring/inc/spark_wiring_cloud.h:64:24: note: candidate expects 2 arguments, 3 provided
../wiring/inc/spark_wiring_cloud.h:69:24: note: static bool CloudClass::variable(const char*, const String&)
static inline bool variable(const char* varKey, const String& var)
^
../wiring/inc/spark_wiring_cloud.h:69:24: note: candidate expects 2 arguments, 3 provided
../wiring/inc/spark_wiring_cloud.h:74:24: note: static bool CloudClass::variable(const char*, const char*)
static inline bool variable(const char* varKey, const char* var)
^
../wiring/inc/spark_wiring_cloud.h:74:24: note: candidate expects 2 arguments, 3 provided
../wiring/inc/spark_wiring_cloud.h:80:24: note: template<unsigned int N> static bool CloudClass::variable(const char*, const char*)
static inline bool variable(const char* varKey, const char var[N])
^
../wiring/inc/spark_wiring_cloud.h:80:24: note: template argument deduction/substitution failed:
firmware.cpp:105:63: note: cannot convert 'reading.reading_struct::temperature' (type 'double') to type 'const char*'
pinMode(CALIBRATE_BTN, INPUT_PULLUP);
^
In file included from ../wiring/inc/spark_wiring.h:48:0,
from ./inc/application.h:36,
from firmware.cpp:2:
../wiring/inc/spark_wiring_cloud.h:86:24: note: template<unsigned int N> static bool CloudClass::variable(const char*, const unsigned char*)
static inline bool variable(const char* varKey, const unsigned char var[N])
^
../wiring/inc/spark_wiring_cloud.h:86:24: note: template argument deduction/substitution failed:
firmware.cpp:105:63: note: cannot convert 'reading.reading_struct::temperature' (type 'double') to type 'const unsigned char*'
pinMode(CALIBRATE_BTN, INPUT_PULLUP);
^
In file included from ../wiring/inc/spark_wiring.h:48:0,
from ./inc/application.h:36,
from firmware.cpp:2:
../wiring/inc/spark_wiring_cloud.h:91:24: note: static bool CloudClass::variable(const char*, const uint8_t*, const CloudVariableTypeString&)
static inline bool variable(const char *varKey, const uint8_t* userVar, const CloudVariableTypeString& userVarType)
^
../wiring/inc/spark_wiring_cloud.h:91:24: note: no known conversion for argument 2 from 'double' to 'const uint8_t* {aka const unsigned char*}'
../wiring/inc/spark_wiring_cloud.h:96:45: note: static bool CloudClass::variable(const char*, typename T::varref, const T&) [with T = CloudVariableTypeDouble; typename T::varref = const double*]
template<typename T> static inline bool variable(const char *varKey, const typename T::varref userVar, const T& userVarType)
^
../wiring/inc/spark_wiring_cloud.h:96:45: note: no known conversion for argument 2 from 'double' to 'CloudVariableTypeDouble::varref {aka const double*}'
In file included from ../wiring/inc/spark_wiring.h:48:0,
from ./inc/application.h:36,
from firmware.cpp:2:
../wiring/inc/spark_wiring_cloud.h:101:24: note: static bool CloudClass::variable(const char*, const int32_t*, const CloudVariableTypeInt&)
static inline bool variable(const char *varKey, const int32_t* userVar, const CloudVariableTypeInt& userVarType)
^
../wiring/inc/spark_wiring_cloud.h:101:24: note: no known conversion for argument 2 from 'double' to 'const int32_t* {aka const long int*}'
../wiring/inc/spark_wiring_cloud.h:106:24: note: static bool CloudClass::variable(const char*, const uint32_t*, const CloudVariableTypeInt&)
static inline bool variable(const char *varKey, const uint32_t* userVar, const CloudVariableTypeInt& userVarType)
^
../wiring/inc/spark_wiring_cloud.h:106:24: note: no known conversion for argument 2 from 'double' to 'const uint32_t* {aka const long unsigned int*}'
../wiring/inc/spark_wiring_cloud.h:113:24: note: template<class T, unsigned int N> static bool CloudClass::variable(const char*, const T (*)[N], const CloudVariableTypeString&)
static inline bool variable(const char *varKey, const T (*userVar)[N], const CloudVariableTypeString& userVarType)
^
../wiring/inc/spark_wiring_cloud.h:113:24: note: template argument deduction/substitution failed:
firmware.cpp:105:63: note: mismatched types 'const T (*)[N]' and 'double'
pinMode(CALIBRATE_BTN, INPUT_PULLUP);
^
In file included from ../wiring/inc/spark_wiring.h:48:0,
from ./inc/application.h:36,
from firmware.cpp:2:
../wiring/inc/spark_wiring_cloud.h:120:24: note: template<class T> static bool CloudClass::variable(const T*, const String*, const CloudVariableTypeString&)
static inline bool variable(const T *varKey, const String *userVar, const CloudVariableTypeString& userVarType)
^
../wiring/inc/spark_wiring_cloud.h:120:24: note: template argument deduction/substitution failed:
firmware.cpp:105:63: note: cannot convert 'reading.reading_struct::temperature' (type 'double') to type 'const String*'
pinMode(CALIBRATE_BTN, INPUT_PULLUP);
^
In file included from ../wiring/inc/spark_wiring.h:48:0,
from ./inc/application.h:36,
from firmware.cpp:2:
../wiring/inc/spark_wiring_cloud.h:129:24: note: template<class T> static bool CloudClass::variable(const T*, const String&, const CloudVariableTypeString&)
static inline bool variable(const T *varKey, const String &userVar, const CloudVariableTypeString& userVarType)
^
../wiring/inc/spark_wiring_cloud.h:129:24: note: template argument deduction/substitution failed:
firmware.cpp:105:63: note: cannot convert 'reading.reading_struct::temperature' (type 'double') to type 'const String&'
pinMode(CALIBRATE_BTN, INPUT_PULLUP);
^
firmware.cpp:106:57: error: no matching function for call to 'CloudClass::variable(const char [9], double&, const CloudVariableTypeDouble&)'
pinMode(USER_SAMPLING_BTN, INPUT_PULLUP);
^
firmware.cpp:106:57: note: candidates are:
In file included from ../wiring/inc/spark_wiring.h:48:0,
from ./inc/application.h:36,
from firmware.cpp:2:
../wiring/inc/spark_wiring_cloud.h:48:24: note: static bool CloudClass::variable(const char*, const int&)
static inline bool variable(const char* varKey, const int& var)
^
../wiring/inc/spark_wiring_cloud.h:48:24: note: candidate expects 2 arguments, 3 provided
../wiring/inc/spark_wiring_cloud.h:54:24: note: static bool CloudClass::variable(const char*, const int32_t&)
static inline bool variable(const char* varKey, const int32_t& var)
^
../wiring/inc/spark_wiring_cloud.h:54:24: note: candidate expects 2 arguments, 3 provided
../wiring/inc/spark_wiring_cloud.h:59:24: note: static bool CloudClass::variable(const char*, const uint32_t&)
static inline bool variable(const char* varKey, const uint32_t& var)
^
../wiring/inc/spark_wiring_cloud.h:59:24: note: candidate expects 2 arguments, 3 provided
../wiring/inc/spark_wiring_cloud.h:64:24: note: static bool CloudClass::variable(const char*, const double&)
static inline bool variable(const char* varKey, const double& var)
^
../wiring/inc/spark_wiring_cloud.h:64:24: note: candidate expects 2 arguments, 3 provided
../wiring/inc/spark_wiring_cloud.h:69:24: note: static bool CloudClass::variable(const char*, const String&)
static inline bool variable(const char* varKey, const String& var)
^
../wiring/inc/spark_wiring_cloud.h:69:24: note: candidate expects 2 arguments, 3 provided
../wiring/inc/spark_wiring_cloud.h:74:24: note: static bool CloudClass::variable(const char*, const char*)
static inline bool variable(const char* varKey, const char* var)
^
../wiring/inc/spark_wiring_cloud.h:74:24: note: candidate expects 2 arguments, 3 provided
../wiring/inc/spark_wiring_cloud.h:80:24: note: template<unsigned int N> static bool CloudClass::variable(const char*, const char*)
static inline bool variable(const char* varKey, const char var[N])
^
../wiring/inc/spark_wiring_cloud.h:80:24: note: template argument deduction/substitution failed:
firmware.cpp:106:57: note: cannot convert 'reading.reading_struct::humidity' (type 'double') to type 'const char*'
pinMode(USER_SAMPLING_BTN, INPUT_PULLUP);
^
In file included from ../wiring/inc/spark_wiring.h:48:0,
from ./inc/application.h:36,
from firmware.cpp:2:
../wiring/inc/spark_wiring_cloud.h:86:24: note: template<unsigned int N> static bool CloudClass::variable(const char*, const unsigned char*)
static inline bool variable(const char* varKey, const unsigned char var[N])
^
../wiring/inc/spark_wiring_cloud.h:86:24: note: template argument deduction/substitution failed:
firmware.cpp:106:57: note: cannot convert 'reading.reading_struct::humidity' (type 'double') to type 'const unsigned char*'
pinMode(USER_SAMPLING_BTN, INPUT_PULLUP);
^
In file included from ../wiring/inc/spark_wiring.h:48:0,
from ./inc/application.h:36,
from firmware.cpp:2:
../wiring/inc/spark_wiring_cloud.h:91:24: note: static bool CloudClass::variable(const char*, const uint8_t*, const CloudVariableTypeString&)
static inline bool variable(const char *varKey, const uint8_t* userVar, const CloudVariableTypeString& userVarType)
^
../wiring/inc/spark_wiring_cloud.h:91:24: note: no known conversion for argument 2 from 'double' to 'const uint8_t* {aka const unsigned char*}'
../wiring/inc/spark_wiring_cloud.h:96:45: note: static bool CloudClass::variable(const char*, typename T::varref, const T&) [with T = CloudVariableTypeDouble; typename T::varref = const double*]
template<typename T> static inline bool variable(const char *varKey, const typename T::varref userVar, const T& userVarType)
^
../wiring/inc/spark_wiring_cloud.h:96:45: note: no known conversion for argument 2 from 'double' to 'CloudVariableTypeDouble::varref {aka const double*}'
In file included from ../wiring/inc/spark_wiring.h:48:0,
from ./inc/application.h:36,
from firmware.cpp:2:
../wiring/inc/spark_wiring_cloud.h:101:24: note: static bool CloudClass::variable(const char*, const int32_t*, const CloudVariableTypeInt&)
static inline bool variable(const char *varKey, const int32_t* userVar, const CloudVariableTypeInt& userVarType)
^
../wiring/inc/spark_wiring_cloud.h:101:24: note: no known conversion for argument 2 from 'double' to 'const int32_t* {aka const long int*}'
../wiring/inc/spark_wiring_cloud.h:106:24: note: static bool CloudClass::variable(const char*, const uint32_t*, const CloudVariableTypeInt&)
static inline bool variable(const char *varKey, const uint32_t* userVar, const CloudVariableTypeInt& userVarType)
^
../wiring/inc/spark_wiring_cloud.h:106:24: note: no known conversion for argument 2 from 'double' to 'const uint32_t* {aka const long unsigned int*}'
../wiring/inc/spark_wiring_cloud.h:113:24: note: template<class T, unsigned int N> static bool CloudClass::variable(const char*, const T (*)[N], const CloudVariableTypeString&)
static inline bool variable(const char *varKey, const T (*userVar)[N], const CloudVariableTypeString& userVarType)
^
../wiring/inc/spark_wiring_cloud.h:113:24: note: template argument deduction/substitution failed:
firmware.cpp:106:57: note: mismatched types 'const T (*)[N]' and 'double'
pinMode(USER_SAMPLING_BTN, INPUT_PULLUP);
^
In file included from ../wiring/inc/spark_wiring.h:48:0,
from ./inc/application.h:36,
from firmware.cpp:2:
../wiring/inc/spark_wiring_cloud.h:120:24: note: template<class T> static bool CloudClass::variable(const T*, const String*, const CloudVariableTypeString&)
static inline bool variable(const T *varKey, const String *userVar, const CloudVariableTypeString& userVarType)
^
../wiring/inc/spark_wiring_cloud.h:120:24: note: template argument deduction/substitution failed:
firmware.cpp:106:57: note: cannot convert 'reading.reading_struct::humidity' (type 'double') to type 'const String*'
pinMode(USER_SAMPLING_BTN, INPUT_PULLUP);
^
In file included from ../wiring/inc/spark_wiring.h:48:0,
from ./inc/application.h:36,
from firmware.cpp:2:
../wiring/inc/spark_wiring_cloud.h:129:24: note: template<class T> static bool CloudClass::variable(const T*, const String&, const CloudVariableTypeString&)
static inline bool variable(const T *varKey, const String &userVar, const CloudVariableTypeString& userVarType)
^
../wiring/inc/spark_wiring_cloud.h:129:24: note: template argument deduction/substitution failed:
firmware.cpp:106:57: note: cannot convert 'reading.reading_struct::humidity' (type 'double') to type 'const String&'
pinMode(USER_SAMPLING_BTN, INPUT_PULLUP);
^
firmware.cpp:107:48: error: call of overloaded 'variable(const char [10], int&, const CloudVariableTypeInt&)' is ambiguous
pinMode(BUZZER_PIN, OUTPUT);
^
firmware.cpp:107:48: note: candidates are:
In file included from ../wiring/inc/spark_wiring.h:48:0,
from ./inc/application.h:36,
from firmware.cpp:2:
../wiring/inc/spark_wiring_cloud.h:96:45: note: static bool CloudClass::variable(const char*, typename T::varref, const T&) [with T = CloudVariableTypeInt; typename T::varref = const int*] <near match>
template<typename T> static inline bool variable(const char *varKey, const typename T::varref userVar, const T& userVarType)
^
../wiring/inc/spark_wiring_cloud.h:96:45: note: no known conversion for argument 2 from 'int' to 'CloudVariableTypeInt::varref {aka const int*}'
In file included from ../wiring/inc/spark_wiring.h:48:0,
from ./inc/application.h:36,
from firmware.cpp:2:
../wiring/inc/spark_wiring_cloud.h:101:24: note: static bool CloudClass::variable(const char*, const int32_t*, const CloudVariableTypeInt&) <near match>
static inline bool variable(const char *varKey, const int32_t* userVar, const CloudVariableTypeInt& userVarType)
^
../wiring/inc/spark_wiring_cloud.h:101:24: note: no known conversion for argument 2 from 'int' to 'const int32_t* {aka const long int*}'
../wiring/inc/spark_wiring_cloud.h:106:24: note: static bool CloudClass::variable(const char*, const uint32_t*, const CloudVariableTypeInt&) <near match>
static inline bool variable(const char *varKey, const uint32_t* userVar, const CloudVariableTypeInt& userVarType)
^
../wiring/inc/spark_wiring_cloud.h:106:24: note: no known conversion for argument 2 from 'int' to 'const uint32_t* {aka const long unsigned int*}'
firmware.cpp:108:40: error: call of overloaded 'variable(const char [6], int&, const CloudVariableTypeInt&)' is ambiguous
pinMode(DUST_PIN, INPUT);
^
firmware.cpp:108:40: note: candidates are:
In file included from ../wiring/inc/spark_wiring.h:48:0,
from ./inc/application.h:36,
from firmware.cpp:2:
../wiring/inc/spark_wiring_cloud.h:96:45: note: static bool CloudClass::variable(const char*, typename T::varref, const T&) [with T = CloudVariableTypeInt; typename T::varref = const int*] <near match>
template<typename T> static inline bool variable(const char *varKey, const typename T::varref userVar, const T& userVarType)
^
../wiring/inc/spark_wiring_cloud.h:96:45: note: no known conversion for argument 2 from 'int' to 'CloudVariableTypeInt::varref {aka const int*}'
In file included from ../wiring/inc/spark_wiring.h:48:0,
from ./inc/application.h:36,
from firmware.cpp:2:
../wiring/inc/spark_wiring_cloud.h:101:24: note: static bool CloudClass::variable(const char*, const int32_t*, const CloudVariableTypeInt&) <near match>
static inline bool variable(const char *varKey, const int32_t* userVar, const CloudVariableTypeInt& userVarType)
^
../wiring/inc/spark_wiring_cloud.h:101:24: note: no known conversion for argument 2 from 'int' to 'const int32_t* {aka const long int*}'
../wiring/inc/spark_wiring_cloud.h:106:24: note: static bool CloudClass::variable(const char*, const uint32_t*, const CloudVariableTypeInt&) <near match>
static inline bool variable(const char *varKey, const uint32_t* userVar, const CloudVariableTypeInt& userVarType)
^
../wiring/inc/spark_wiring_cloud.h:106:24: note: no known conversion for argument 2 from 'int' to 'const uint32_t* {aka const long unsigned int*}'
firmware.cpp: In function 'void loop()':
firmware.cpp:155:57: error: call of overloaded 'pulseIn(int, PinState)' is ambiguous
wsp2110.startSampling(current_ms);
^
firmware.cpp:155:57: note: candidates are:
In file included from ./inc/application.h:36:0,
from firmware.cpp:2:
../wiring/inc/spark_wiring.h:83:10: note: uint32_t pulseIn(pin_t, uint16_t)
uint32_t pulseIn(pin_t pin, uint16_t value);
^
In file included from firmware.cpp:10:0:
function_pulseIn.h:40:15: note: long unsigned int pulseIn(uint16_t, uint8_t)
unsigned long pulseIn(uint16_t pin, uint8_t state) {
^
In file included from ../wiring/inc/spark_wiring.h:35:0,
from ./inc/application.h:36,
from firmware.cpp:2:
firmware.cpp: In function 'bool resolveHost()':
../services/inc/spark_macros.h:55:47: warning: narrowing conversion of '(ip_addr >> 24)' from 'long unsigned int' to 'uint8_t {aka unsigned char}' inside { } [-Wnarrowing]
#define BYTE_N(x,n) ((x) >> ((n)*8) & 0x000000FF)
^
firmware.cpp:265:19: note: in expansion of macro 'BYTE_N'
cnt++;
^
../services/inc/spark_macros.h:55:47: warning: narrowing conversion of '((ip_addr >> 16) & 255ul)' from 'long unsigned int' to 'uint8_t {aka unsigned char}' inside { } [-Wnarrowing]
#define BYTE_N(x,n) ((x) >> ((n)*8) & 0x000000FF)
^
firmware.cpp:265:38: note: in expansion of macro 'BYTE_N'
cnt++;
^
../services/inc/spark_macros.h:55:47: warning: narrowing conversion of '((ip_addr >> 8) & 255ul)' from 'long unsigned int' to 'uint8_t {aka unsigned char}' inside { } [-Wnarrowing]
#define BYTE_N(x,n) ((x) >> ((n)*8) & 0x000000FF)
^
firmware.cpp:265:57: note: in expansion of macro 'BYTE_N'
cnt++;
^
../services/inc/spark_macros.h:55:47: warning: narrowing conversion of '(ip_addr & 255ul)' from 'long unsigned int' to 'uint8_t {aka unsigned char}' inside { } [-Wnarrowing]
#define BYTE_N(x,n) ((x) >> ((n)*8) & 0x000000FF)
^
firmware.cpp:265:76: note: in expansion of macro 'BYTE_N'
cnt++;
^
In file included from ../wiring/inc/spark_wiring.h:48:0,
from ./inc/application.h:36,
from firmware.cpp:2:
../wiring/inc/spark_wiring_cloud.h: In instantiation of 'static bool CloudClass::variable(const char*, const T (*)[N], const CloudVariableTypeString&) [with T = char; unsigned int N = 20u]':
firmware.cpp:112:56: required from here
../wiring/inc/spark_wiring_cloud.h:115:9: error: static assertion failed:
Use Particle.variable("name", myVar, STRING); without & in front of myVar
static_assert(sizeof(T)==0, "\n\nUse Particle.variable(\"name\", myVar, STRING); without & in front of myVar\n\n");
^
make[2]: *** [../build/target/user/platform-0-lfirmware.o] Error 1
make[1]: *** [user] Error 2
make: *** [main] Error 2