Arduino - Lägga till nummer på String variabeln

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
GeekJoan
Admin
Inlägg: 10642
Blev medlem: 26 maj 2003, 15:59:27
Ort: Solna

Re: Arduino - Lägga till nummer på String variabeln

Inlägg av GeekJoan »

Då frågar jag ingen: Finns det något smart typ som för radbrytning '\n' som är "ingenting" som jag skulle kunna använda?

/n är ingenting, det är en radbrytning
" " är ett mellanslag.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43149
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Arduino - Lägga till nummer på String variabeln

Inlägg av sodjan »

Alltså, INData är ju en byte lång, så den måste alltid innehålla någonting.
Och det finns inget värde som är "ingenting". Möjligtvis att ett NULL
(x'00') i vissa fall kan tolkas som "ingenting", du får testa.

Däremot så kan du kanske helt enkelt låta bli att lägga till värdet från
INData då du inte vill ha det med.
johano
Inlägg: 1943
Blev medlem: 22 januari 2008, 10:07:45
Ort: Stockholm

Re: Arduino - Lägga till nummer på String variabeln

Inlägg av johano »

Du ställer lite konstiga frågor :-)

Om du nu inte vill lägga till "#" så lägg till en kontroll mot det isåfall.
Eller som mitt förra tips, byt ut "#" mot ett tecken som du redan kollar efter ("\n")

Du hade ju logiken:

Kod: Markera allt

f (Switch == 1 && INData != '\n'){SLArray[Nr] += INData;} // Om Switch är 1 och inkommande data inte är en radbrytning Bygg på Array["Nr"0] med inkommande data.
Där kollar du ju om Switch==1 OCH INData != '\n' innan du lägger til.
Antingen lägg till ett till villkor OCH INData != '#' ... eller som sagt: byt '#' mot '\n' (som du redan kollar efter).


/j
Användarvisningsbild
GeekJoan
Admin
Inlägg: 10642
Blev medlem: 26 maj 2003, 15:59:27
Ort: Solna

Re: Arduino - Lägga till nummer på String variabeln

Inlägg av GeekJoan »

Jo, just i detta fallet så funkar det med \n. Tänkte mer på om det fanns ett "tecken" som man kunde använda i kod just för att ersätta ett tecken med "ingenting".
Användarvisningsbild
jesse
Inlägg: 9233
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Arduino - Lägga till nummer på String variabeln

Inlägg av jesse »

TomasL skrev: INData = "Datagram\0"
itoa()-> tmp = "00\0"
strcat()-> INData = "Datagram00\0"
strcpy -> data[0] = "Datagram00\0"

Om Nr =10, blir då resultatet i Data[10] "Datagram10\0"

\0 betyder strängavslut.
ehm.. i C är det ju underförstått att en sträng omgiven av "" alltid avslutas med \0 så det ser bara förvirrande ut att denna \0 skrivs ut inne i strängen.

så INData = "Datagram" är ju en sträng med 9 tecken som givetvis avslutas med en nolla. Annars är det inte en sträng utan en numerisk array av chars och skulle då kunna se ut som char[9] = {'D', 'a', 't', 'a', 'g', 'r', 'a', 'm', 0};
Användarvisningsbild
GeekJoan
Admin
Inlägg: 10642
Blev medlem: 26 maj 2003, 15:59:27
Ort: Solna

Re: Arduino - Lägga till nummer på String variabeln

Inlägg av GeekJoan »

OK, helt annan fråga. Finns det något sätt att börja om från början i ett program?
Tänker högt:
Istället för att nollställa alla variabler och strängar etc och så hoppa tillbaks en bit i programmet, så börjar arduinon om från rad 1 av sitt program. Lite som om när man trycker på resetknappen.
Användarvisningsbild
GeekJoan
Admin
Inlägg: 10642
Blev medlem: 26 maj 2003, 15:59:27
Ort: Solna

Re: Arduino - Lägga till nummer på String variabeln

Inlägg av GeekJoan »

Är det så enkelt?

void(* resetFunc) (void) = 0;//declare reset function at address 0
Användarvisningsbild
GeekJoan
Admin
Inlägg: 10642
Blev medlem: 26 maj 2003, 15:59:27
Ort: Solna

Re: Arduino - Lägga till nummer på String variabeln

Inlägg av GeekJoan »

jepp
Skriv svar