Hi
I am trying to combine a number of chars together to create a long string that I will then add together to make a checksum.
when I try and compile it keeps coming up with the error "invalid operands of types 'const char [3]' and 'const char [2]' to binary 'operator+'"
// Testing Data
const char device_id[3] = "001";
bool state1 = false;
bool state2 = true;
bool state3 = false;
char number_state[13] = "+123456789012";
void setup() {
Serial.begin(9600);
char data1[1];
char data2[1];
char data3[1];
char settings_data[100];
//convert bool to char
if (state1 == true) {
data1[0] = '1';
}
else {
data1[0] = '0';
}
if (state2 == true) {
data2[0] = '1';
}
else {
data2[0] = '0';
}
if (state3 == true) {
data3[0] = '1';
}
else {
data3[0] = '0';
}
//combining data
settings_data[0] = device_id + "," + data1 + "," + data2 + "," + data3 + "," + number_state + ","
Serial.println(settings_data); //desired output "001,0,1,0,+123456789012,"
}
Thanks in advance
Hannah
edit1:
I used the strcat method and it complied but gave an output of "n␞.����������ݣ�.�^���������/�,0,0,0,0,0,0,0,0,0"
#include <arduino.h>
// Testing Data
const char device_id[4] = "001";
bool state1 = false;
bool state2 = true;
bool state3 = false;
char number_state[14] = "+123456789012";
void setup() {
Serial.begin(9600);
char data1[1];
char data2[1];
char data3[1];
char settings_data[100];
//convert bool to char
if (state1 == true) {
data1[0] = '1';
}
else {
data1[0] = '0';
}
if (state2 == true) {
data2[0] = '1';
}
else {
data2[0] = '0';
}
if (state3 == true) {
data3[0] = '1';
}
else {
data3[0] = '0';
}
//combining data
strcpy(settings_data, device_id);
strcat(settings_data, ",");
strcat(settings_data, data1);
strcat(settings_data, ",");
strcat(settings_data, data2);
strcat(settings_data, ",");
strcat(settings_data, data3);
strcat(settings_data, ",");
strcat(settings_data, number_state);
strcat(settings_data, ",");
//settings_data[0] = device_id + "," + data1 + "," + data2 + "," + data3 + "," + number_state + ","
Serial.println(settings_data); //example desired string 001,0,1,0,+123456789012
}
void loop() {
}
Edit2: running the strcat method on the Arduino IDE (rather than PlatformIO on Atom) returned "001,0,10,010,+123456789012,"