Я пытаюсь сделать объект в Arduino, но получил ошибку - PullRequest
0 голосов
/ 24 августа 2018

Я пытаюсь создать объект в Arduino, но у меня ошибка при настройке myObject.

struct myObject {
  char dataA[32];
  char dataB[32];
};

make_object("Hello","World");


void make_object(String strText1, String strText2){


  myObject vars = { 
     strText1,                 // here are my errors
     strText2                  // here are my errors  
  };
  Serial.println(vars.dataA);
  Serial.println(vars.dataB);
} 

Ошибка:

не существует подходящей функции преобразования из "String" в "char"

Кто-нибудь знает, как это исправить?

Ответы [ 2 ]

0 голосов
/ 24 августа 2018

@ MikeCAT

Большое спасибо, что сработало.

С вашей помощью я смог сохранить объект SSID в EEPROM

struct wifiConn {
  char eSsid[32];
  char ePasw[32];
};

void write_wifi_toEEPROM(uint8_t startAddr, String strSSID, String strPW){
  wifiConn vars;
  strSSID.toCharArray(vars.eSsid, sizeof(vars.eSsid));
  strPW.toCharArray(vars.ePasw, sizeof(vars.ePasw));
  EEPROM.put(startAddr, vars);
  EEPROM.commit();  
}
wifiConn read_wifi_fromEEPROM(uint8_t startAddr){
  wifiConn readEE;        //Variable to store custom object read from EEPROM.
  EEPROM.get(startAddr, readEE);
  Serial.println("Read ssid object from EEPROM ");
  return readEE;    
}

Надеюсь, код также поможет другим пользователям.

0 голосов
/ 24 августа 2018

string.toCharArray(buf, len) функция кажется полезной.

void make_object(String strText1, String strText2){


  myObject vars;
  strText1.toCharArray(vars.dataA, sizeof(vars.dataA));
  strText2.toCharArray(vars.dataB, sizeof(vars.dataB));
  Serial.println(vars.dataA);
  Serial.println(vars.dataB);
}
...