I have this code, I have been flashing to my electrons. And the code always works. But recently, I purchased borons, and tried to flash the same code from the web IDE as I do all the time. I’m getting a weird error. I have a hunch that maybe the boron has different development parameters I didn’t consider because the code works for the electrons and not the borons. Here is my code:
const int trigPin = D2;
const int echoPin = D6;
int tempC;
int analogvalue;
int aString;
// defines variables
long duration;
double distance;
String inWord;
char inByte;
String data;
int LockLED = D1;
void setup() {
Particle.variable("distance", &distance, DOUBLE);
Particle.variable("duration", &duration);
Particle.variable("analogvalue", &analogvalue, INT);
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input
Serial.begin(9600); // Starts the serial communication
// cloud variable
Particle.variable("GPS", data);
// GPS Serial
Serial1.begin(9600);
pinMode(LockLED, OUTPUT);
digitalWrite(LockLED, HIGH);
delay(2000);
digitalWrite(LockLED, LOW);
//String data = String(10);
// Trigger the integration
//Particle.publish("distance", data, PRIVATE);
// Wait 60 seconds
//delay(30000);
}
void loop() {
// Clears the trigPin
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);
//analogvalue = addition(distance + 0);
// Calculating the distance
distance= duration*0.034/2;
// Prints the distance on the Serial Monitor
Serial.print("Distance: ");
Serial.println(distance);
Particle.publish("distance", String(distance), PRIVATE);
delay(30000);
analogvalue = 129;
while (Serial1.available() > 0) {
inByte = Serial1.read();
if (inByte == '\n') {
// END OF LINE
Serial.print("inWord: ");
Serial.println(inWord);
// check is data we want
// you can change this to get any data line values
if (inWord.startsWith("$GPRMC")) {
// put data string in variable
data = inWord;
Serial.print("data: ");
Serial.println(data);
Particle.publish("GPS", String(data), PRIVATE);
digitalWrite(LockLED, HIGH);
delay(500);
digitalWrite(LockLED, LOW);
// clear the inword variable
inWord = "";
// does the GPS Receiver have lock?
// get the char at pos 17 and test to see if it is an A i.e VALID, V = INVALID
char lock = data.charAt(17);
Serial.print("lock: ");
Serial.println(lock);
if (lock == 'A') {
// YES Switch on Lock LED
digitalWrite(LockLED, HIGH);
} else {
// NO turn off lock led
//digitalWrite(LockLED, LOW);
}
} else {
// clear the inword variable as not the data we want
inWord = "";
}
} else {
// build data string
inWord += inByte;
}
} // end if serial
}
long microsecondsToCentimeters(long microseconds) {
return microseconds / 29 / 2;
}
The error I get is :
../wiring/inc/spark_wiring_cloud.h:108:91: no type named 'type' in 'struct std::enable_if<false, std::nullptr_t>'
error
../wiring/inc/spark_wiring_cloud.h:435:103: no type named 'type' in 'class std::result_of<long int*()>'
I’m quite new to particle in general, so your help will be appreciated.