Arduino: Slå i sönder String

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
RadioDJ
Inlägg: 446
Blev medlem: 7 november 2005, 16:18:15
Ort: Helsingborg

Re: Arduino: Slå i sönder String

Inlägg av RadioDJ »

Programmet i pc:n är ett program för tidtagning och hur det hanteras kommer jag inte åt.
Bara att acceptera.
Användarvisningsbild
SeniorLemuren
Inlägg: 8426
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Arduino: Slå i sönder String

Inlägg av SeniorLemuren »

När jag frågar hur det hanteras så syftar jag naturligtvis på hur är indata organiserat och hur matas den in. Hur matas data ut (på vilket media) och hur är ev. utskrift formaterad i det fallet.

Det kan ju ge ledtrådar som förklarar alla LF bl.a.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Arduino: Slå i sönder String

Inlägg av sodjan »

Eller säg så här, vad är det som sitter där Arduinon nu ska kopplas in?
Jag antar att det är någon annan utrustning som normalt tar emot datat?

> Programmet i pc:n är ett program för tidtagning

Eget program? Kommersiellt? Finns det dokumentation? Någon websida?
johano
Inlägg: 1943
Blev medlem: 22 januari 2008, 10:07:45
Ort: Stockholm

Re: Arduino: Slå i sönder String

Inlägg av johano »

Tycker det ser ut som en enkel seriell terminal (tty) som bara styr cursorn med BS CR och LF och sedan bara spottar ut texten där cursorn råkar befinna sig.

/johan
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Arduino: Slå i sönder String

Inlägg av sodjan »

Ja, det är ju så det ser ut i loggningen här i tråden, men det
betyder ju inte alls att det var så det fungerade från början.

Men vi får väl anta att RadioDJ har gjort vad som går för att
hitta dokumentation över kommunikationen och formatet.

I princip är det bara för RadioDJ att sätta igång och koda... :-)
Nerre
Inlägg: 27229
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Arduino: Slå i sönder String

Inlägg av Nerre »

Nja, titta på i vilken ordning tecknen kommer. Efter en text kan det komma <BS><CR><LF><LF><LF>.

Möjligen så är det avsett för en skrivare som tolkar <BS> annorlunda än bara "ett steg bakåt".
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Arduino: Slå i sönder String

Inlägg av sodjan »

Ja, det ser lite underligt ut. En <BS> direkt efter en <CR>
har ju i princip ingen funktion, det går inte att "backspace'a"
när man redan står vid vänster marginalen...

Min känsla är att <BS> används som något slags fält-separator
och antalet <LF> signalerar vilket fält det är.

Sen så tycker jag att även den första "0" borde vara röd, den
kanske inte är intressant, men den gör formatet mer logiskt.

<BS>0<CR>
<BS><LF>
Nils Nilsson<CR>
<BS><LF>
<LF>
...
...
johano
Inlägg: 1943
Blev medlem: 22 januari 2008, 10:07:45
Ort: Stockholm

Re: Arduino: Slå i sönder String

Inlägg av johano »

Egentligen är det ju bara stycket där "nisse hult" kommer som avviker från alla de övriga då den "saknar" en <CR> innan <BS>.
Kanske captureprogrammet missade det, eller fel vid klipp&klistra?

Nisse Hult<BS><LF>
<LF>
<LF>
<LF>

Och så kanske PC-programsutvecklaren ville vara säker på att han stod längst ut till vänster innan han började skicka ut nästa text :-)

/johan
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Arduino: Slå i sönder String

Inlägg av sodjan »

En terminal skulle påbörja nästa utskrift ett antal rader rakt under "t" i "Nisse Hult".
Tja, det kanske är det man vill... :-)
johano
Inlägg: 1943
Blev medlem: 22 januari 2008, 10:07:45
Ort: Stockholm

Re: Arduino: Slå i sönder String

Inlägg av johano »

När TS skriver "tidtagarprogram" får jag lite känsla av att det är någon form av resultattavla som ska uppdateras här, men utan lite mer info från henom så är det nog svårt att komma längre...

/johan
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Arduino: Slå i sönder String

Inlägg av sodjan »

Om det skulle skrivas på en terminal/skärm som förstår ASCII koderna
så skulle det se ut ungefär så här om jag fick till det rätt:

Kod: Markera allt

0
Nils Nilsson

Nisse


Nisse Hult



         0,00




0



1,00
johano
Inlägg: 1943
Blev medlem: 22 januari 2008, 10:07:45
Ort: Stockholm

Re: Arduino: Slå i sönder String

Inlägg av johano »

Snyggt, men borde inte t:et i Hult raderats?

/johan
Nerre
Inlägg: 27229
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Arduino: Slå i sönder String

Inlägg av Nerre »

Nja, skriver du ut på en skrivare så går det ju inte att radera, att backspace suddar är ett rätt sent påfund. Tidigare flyttade backspace bara markören så skulle man sudda fick man skriva över med blanktecken också.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Arduino: Slå i sönder String

Inlägg av sodjan »

> men borde inte t:et i Hult raderats?

Nej. <BS> flyttar cursorn en pos till vänster, inget skrivs.
<LF> flyttar ner cursorn 4 rader.

Däremot när man trycker "Backspace" på tangentbordet så
kan det hända lite mer. Om jag t.ex först skriver "abc" sedan
trycker "Backspace" och skriver "d" (nu står det "abd" på skärmen)
så skrivs följande tecken till skärnen:

$ abc<BS> <BS>d

Första <BS> flyttar cursorn tillbaka.
Sedan kommer ett <space> som skriver över "c".
Sen flyttas cursorn tillbaka igen till där "c" var.
Sist så skrivs ett "d" ut.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Arduino: Slå i sönder String

Inlägg av sodjan »

Det här med att det skriver över förutsätter ju att det är en bildskärm.
På en terminal med skrivare (hardcopy) så får redigeringen av
raden visas på annan sätt (samma knappar tryckta som ovan):

Kod: Markera allt

$ set terminal /hardcopy
$ abc\c\d
$
$ set terminal /nohardcopy
I detta fall sätter /hardcopy om vissa terminal attribut
så att drivern tror att det är en terminal med skrivare...

> att backspace suddar är ett rätt sent påfund.

ASCII tecknet <BS> har aldrig ändrat betydelse!
Tangenten "Backspace" på ett tengentbord fungerar ju så som
OS'et och dess terminaldriver tycker att det ska fungera, men
det har inget direkt med ASCII koderna att göra.

Ofta är även terminalen konfigurerbar hur den ska reagera på <BS>,
men det har mer med terminalen i sig att göra.
Skriv svar