Sida 1 av 1

Plocka ut talvärden från en "String" i ARDUINO Hjälp

Postat: 17 december 2018, 17:55:26
av Drivmedel
Nedan koden som jag skulle behöva lite hjälp med, det finns alltså mera kod i programmet som någon mera intelligent person skrivit.

Där ” inputString” är en ”String” variabel som dateras upp en gång i minuten och som kan se ut så här, värdena är åtskilda med semikolon.

124;208;209;209;211;214;216;216;217;0;0;0;0;0;0;1;0;0;1;0;90;105;120;135;495;520;545;95;120;145;975;33;145;0;0;0;0

Vill jämföra position 2 som är ett ”ärvärde” (20,9 grd.) med position 29 som är ett börvärde (på 12,0 grd).
Då ”börvärdet” överstiger ”ärvärdet” ett visst antal grader under ett visst antal jämförelser (kanske 10) i följd som då skall aktivera en utgång.
Sedan omvänt då börvärdet har uppnåtts men kanske färre jämförelser.
Hoppas någon förstår min tankegång.
Så här ser koden ut som skall kompletteras.


void loop() {

if(swSer.available() > 0)
{
fetchSerial();
}

if(stringComplete == true){
delay(10);
Serial.print(inputString);
splitString();
delay(50);
}
}

Tackar på förhand Lars

Re: Plocka ut värden från en "String" aktivera. utg. ARDUINO

Postat: 17 december 2018, 18:55:16
av Icecap
Jag gjorde ca. det samma för att plocka data från en GPS-sträng. Jag har gjort en enkelt funktion:
Char* Ptr;
Ptr = InputString;
while(*Ptr && (*Ptr != ';')) Ptr++; Ptr++;

Den stegar till tecknet omedelbart efter semikolon. Man kan upprepa fler gångar för att stega.

Re: Plocka ut värden från en "String" aktivera. utg. ARDUINO

Postat: 17 december 2018, 19:22:48
av Zkronk
Är det ett String-objekt eller en char-array du har?

Re: Plocka ut värden från en "String" aktivera. utg. ARDUINO

Postat: 17 december 2018, 19:51:40
av Drivmedel
Det är en String om jag förstått det rätt, Declare globalt "String inputString;"

Re: Plocka ut värden från en "String" aktivera. utg. ARDUINO

Postat: 20 december 2018, 16:49:27
av Drivmedel
Om jag förstår rätt så är ju "String" tecken och måste konverteras till talvärden tex. "long" för kunna jämföras.
Har tyvärr ännu inte kommit längre.
Skulle vara tacksam om någon kunde hjälpa mig med de viktigaste delarna av programmet.

Re: Plocka ut värden från en "String" aktivera. utg. ARDUINO

Postat: 20 december 2018, 18:40:43
av svanted
det går utmärkt att jämföra binära tal.
ser alla strängar lika ut?
börjar/slutar de med samma tecken?
för att kunna resetta positionsräknaren när man maskar ut talen du vill använda.

Re: Plocka ut talvärden från en "String" i ARDUINO Hjälp

Postat: 20 december 2018, 19:02:02
av Drivmedel
Strängen"inputstring" uppdateras varje minut och är lika lång men värden ändras då det är mätvärden som dateras upp.
I "inputstring är alla Mellanslag, Carriage Return ock Line feed bortsorterade. Får nog kolla på semikolonen.
Är helt nybörjare på detta så är tacksam för all hjälp.

Re: Plocka ut talvärden från en "String" i ARDUINO Hjälp

Postat: 20 december 2018, 19:04:38
av Mickecarlsson

Re: Plocka ut talvärden från en "String" i ARDUINO Hjälp

Postat: 20 december 2018, 19:40:07
av Skogen
Går givetvis att göra på många olika sätt.

Kod: Markera allt

int Index1 = inputString.indexOf(';'); 
int Index2 = inputString.indexOf(';', Index1 + 1);
int Index29 = inputString.indexOf(';', Index1 + 28);
Något liknande bör väl kunna användas för att plocka ut det du vill ha.

Re: Plocka ut talvärden från en "String" i ARDUINO Hjälp

Postat: 20 december 2018, 23:09:23
av Jake
string.toInt() konverterar från string till long.

Re: Plocka ut talvärden från en "String" i ARDUINO Hjälp

Postat: 21 december 2018, 06:01:10
av svanted
long?
toint trodde jag betydde "to int"

Re: Plocka ut talvärden från en "String" i ARDUINO Hjälp

Postat: 21 december 2018, 06:20:46
av Jugge
string.toint() konverterar en string till Integer. Returvärdet är Long.

Re: Plocka ut talvärden från en "String" i ARDUINO Hjälp

Postat: 21 december 2018, 11:26:27
av sodjan
Notera att både int och long (och t.ex. short) är integer.
Ett bättre namn på funktionen hade varit ".toInteger"...

Re: Plocka ut talvärden från en "String" i ARDUINO Hjälp

Postat: 1 januari 2019, 21:14:08
av Drivmedel
Tack för tipsen de gav mig ledtrådar så nu för står jag APL bättre och har kommit vidare.