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

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Drivmedel
Inlägg: 56
Blev medlem: 29 oktober 2011, 13:40:18
Ort: Lund Södra Sandby

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

Inlägg 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
Senast redigerad av Drivmedel 20 december 2018, 18:42:15, redigerad totalt 1 gång.
Användarvisningsbild
Icecap
Inlägg: 26106
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

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

Inlägg 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.
Senast redigerad av Icecap 17 december 2018, 21:30:59, redigerad totalt 1 gång.
Zkronk
Inlägg: 1423
Blev medlem: 23 augusti 2005, 16:44:36
Ort: Uppsala

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

Inlägg av Zkronk »

Är det ett String-objekt eller en char-array du har?
Drivmedel
Inlägg: 56
Blev medlem: 29 oktober 2011, 13:40:18
Ort: Lund Södra Sandby

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

Inlägg av Drivmedel »

Det är en String om jag förstått det rätt, Declare globalt "String inputString;"
Drivmedel
Inlägg: 56
Blev medlem: 29 oktober 2011, 13:40:18
Ort: Lund Södra Sandby

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

Inlägg 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.
svanted
Inlägg: 5082
Blev medlem: 30 augusti 2010, 21:20:38
Ort: Umeå

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

Inlägg 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.
Drivmedel
Inlägg: 56
Blev medlem: 29 oktober 2011, 13:40:18
Ort: Lund Södra Sandby

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

Inlägg 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.
Senast redigerad av Drivmedel 20 december 2018, 19:11:12, redigerad totalt 1 gång.
Skogen
Inlägg: 901
Blev medlem: 5 januari 2013, 22:50:34
Ort: Alingsås

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

Inlägg 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.
Jake
Inlägg: 21
Blev medlem: 21 februari 2006, 20:59:30

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

Inlägg av Jake »

string.toInt() konverterar från string till long.
svanted
Inlägg: 5082
Blev medlem: 30 augusti 2010, 21:20:38
Ort: Umeå

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

Inlägg av svanted »

long?
toint trodde jag betydde "to int"
Jugge
Inlägg: 707
Blev medlem: 26 januari 2016, 08:42:42
Ort: Helsingborg

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

Inlägg av Jugge »

string.toint() konverterar en string till Integer. Returvärdet är Long.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43151
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

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

Inlägg av sodjan »

Notera att både int och long (och t.ex. short) är integer.
Ett bättre namn på funktionen hade varit ".toInteger"...
Drivmedel
Inlägg: 56
Blev medlem: 29 oktober 2011, 13:40:18
Ort: Lund Södra Sandby

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

Inlägg 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.
Skriv svar