Sida 2 av 2

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

Postat: 29 mars 2018, 10:06:56
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.

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

Postat: 29 mars 2018, 10:19:03
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.

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

Postat: 29 mars 2018, 10:21:21
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

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

Postat: 29 mars 2018, 22:00:44
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".

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

Postat: 29 mars 2018, 22:14:15
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};

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

Postat: 29 mars 2018, 22:32:55
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.

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

Postat: 29 mars 2018, 22:38:57
av GeekJoan
Är det så enkelt?

void(* resetFunc) (void) = 0;//declare reset function at address 0

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

Postat: 29 mars 2018, 22:52:48
av GeekJoan
jepp