Spørgsmål:
Arduino Konverter std: streng til streng
BK52
2018-09-25 12:36:50 UTC
view on stackexchange narkive permalink

Jeg arbejder på BLE-projekt med espressif-bibliotek. Og det returnerer mig grundlagt BLE-enhed.

  std :: string getManufacturerData (); std :: string getName (); int getRSSI (); BLEScan * getScan ();  

Når jeg ønsker at udskrive enhedsnavn til seriel port

  BLEAdvertisedDevice foundation_dev; foundation_dev = foundDevices.getDevice (0); Serial.println ("Name ->" + foundation_dev.getName ());  

Det giver mig en fejl som denne

  ingen matchende funktion til opkald til 'HardwareSerial :: println (std :: __ cxx11 :: basic_string<char>)'  

Så hvordan kan jeg konvertere til std: string til String i Arduino?

En svar:
Majenko
2018-09-25 13:22:01 UTC
view on stackexchange narkive permalink

Gør det ikke. I stedet skal du bare få adgang til den underliggende C-streng:

  Serial.print (F ("Name ->")); Serial.println (foundation_dev.getName (). C_str ());  
Det fungerer for getName (), men ikke nogle af de andre metoder, såsom `BLEAdvertisedDevice :: getAddress ()` eller `BLEAdvertisedDevice :: getServiceUUID ()`
@TomAuger Det er fordi de ikke returnerer en streng. Den første returnerer en BLEAddress, den anden en BLEUUID. Brugerdefinerede typer, der har brug for særlig håndtering.
For UUID kan du bruge `getServiceUUID (). ToString (). C_str ()`, For adressen kan du bruge: `getAddress (). ToString (). C_str ()`.


Denne spørgsmål og svar blev automatisk oversat fra det engelske sprog.Det originale indhold er tilgængeligt på stackexchange, som vi takker for den cc by-sa 4.0-licens, den distribueres under.
Loading...