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

Jeg jobber med BLE-prosjekt med espressif-bibliotek. Og det gir meg grunnlagt BLE-enhet.

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

Når jeg vil skrive ut enhetsnavnet til serieporten

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

Det gir meg feil som dette

  ingen samsvarende funksjon for samtale 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

Ikke gjør det. I stedet er det bare å få tilgang til den underliggende C-strengen:

  Serial.print (F ("Name ->")); Serial.println (foundation_dev.getName (). C_str ());  
Det fungerer for getName (), men ikke noen av de andre metodene som `BLEAdvertisedDevice :: getAddress ()` eller `BLEAdvertisedDevice :: getServiceUUID ()`
@TomAuger Det er fordi de ikke returnerer en streng. Den første returnerer en BLEAddress, den andre en BLEUUID. Egendefinerte typer som trenger spesiell håndtering.
For UUID kan du bruke `getServiceUUID (). ToString (). C_str ()`, For adressen kan du bruke: `getAddress (). ToString (). C_str ()`.


Denne spørsmålet ble automatisk oversatt fra engelsk.Det opprinnelige innholdet er tilgjengelig på stackexchange, som vi takker for cc by-sa 4.0-lisensen den distribueres under.
Loading...