Stránka 1 z 1

Osekanie textu alebo co to je :D

Napsal: 03 říj 2020, 15:17
od 00alkskodi00
Chlapy mam amatersku otazku

Mam nejaky takyto text v arduine nacitany zo serial

D: 10.552m 0097

Potreboval by son vytiahnut s toho iba 10.552 aby som to mohol pouzit nadalsi vypocet

Rozmyslal som ze to iba jednpducho osekam od pozicie po poziciu ale problem je ze ono sa to meni neustale napr D: 8.33m 0052...


Su to udaje z laseroveho dialkomeru a naozaj neviem ako to urobit

:lol:

Re: Osekanie textu alebo co to je :D

Napsal: 03 říj 2020, 15:55
od ondraN
Zkus to takhle

Kód: Vybrat vše

float x;
if(Serial.available()>0){
	do{
		if(isDigit(Serial.peek())){
			break;
		}
		Serial.read();
	}while(Serial.available()>0);
	x=Serial.parseFloat(SKIP_NONE);
// tady muzes docist zbytek za tim cislem
}
A nebo taky takhle

Kód: Vybrat vše

float x;
if(Serial.available()>0){
	x=Serial.parseFloat(SKIP_ALL);
}

Re: Osekanie textu alebo co to je :D

Napsal: 03 říj 2020, 18:00
od martinius96
Obrázek

Kód: Vybrat vše

String midString(String str, String start, String finish) {
  int locStart = str.indexOf(start);
  if (locStart == -1) return "";
  locStart += start.length();
  int locFinish = str.indexOf(finish, locStart);
  if (locFinish == -1) return "";
  return str.substring(locStart, locFinish);
}

void setup() {
  Serial.begin(115200);
  String line = "D: 10.552m 0097";
  String retazec = midString(line, " ", "m");
  float hodnota = retazec.toFloat();
  Serial.println(hodnota, 3); //vypis hodnoty float na 3 desatinne miesta (NEOVPLYVNI TO PREMENNU HODNOTA A POCET DESATINNYCH MIEST V NEJ)
}

void loop() {

}

Re: Osekanie textu alebo co to je :D

Napsal: 03 říj 2020, 19:22
od 00alkskodi00
dikes za odpoved idem skusat :)