28. august 2002 - 21:22Der er
7 kommentarer og 1 løsning
Modtage streng på com port fra måleudstyr
Jeg er ved at udvikle en applikation der kan modtage serielle data fra et måleudstyr. jeg anvender MSComm control og det virker fint, men. de serielle data er adskilt af <CR> og strengen har ikke samme længde hvergang, så hvordan får jeg de enkelte strenge adskildt fra hinanden. når jeg aflæser input bufferen, kan det jo ske at jeg tømmer den midt i modtagelsen af strengen
er der nogen der har en ide / som kan hjælpe mvh Viggo
Tak for et hurtigt svar Jeg har testet det og det ser ud til at virke De enkelte del-strenge som er afsluttet med <CR> hentes ud, men bufferen er uændret. Hvordan kan jeg slette de del-strenge i bufferen som er hentet ud, således at bufferen kun indeholder de sidste karakterer. viggo
okay du ser på længden af dine delstreng + længden af "<CR>" og sletter din buffer ved for hver delstreng at slette delstrengens længde i bufferen ... altså noget lign det her:
for n = 0 to ntokens inputbuffer = Mid(inputbuffer, 1 + len(token(n))+len("<CR>"), Len(str)) next n
grunden til at du skal have længden af "<CR>" med er fordi der ikke kommer til at stå <CR> men når du splitter dine strenge op.
Nå jow jeg kom lige på en alternativ løsning ... du kopierer hele tiden input bufferen over i en inputstreng et enkelt tegn af gangen .. så snart der er mere end 3 tegn begynder du at checke om det/de sidste tegn er "<CR>" hvis de er kopierer du bare bufferen over i collection eller behandler den direkte ... sletter derefter hele din input streng... starter forfra med at hente tegn for tegn ind igen osvosv.
Til Viggo. Er i gang med den samme opgave med data fra måleure. Har søgt her for at finde hjælp til mscomm og er her faldet over dette indlæg. Har aldrig programmeret til comport med har lavet en masse text stringe mv. Kan du hjælpe mig igang. Kan kun få måling en gang. skal derefter afslutte og herefter i hypretaminal for at få data igen.
Har ikke vedlagt kode da jeg lige ville hører om du vil hjælpe mig.
Hej Klaus Se på eksemplet VBTERM fra MS, det er en god hjælp betragt den seriele port som 2 variabler, en du kan skrive til og en du kan læse, læs input string vha. en timer sørg for at hastighed og handshake er sat op så det passer til dit eksterne udstyr. mvh Viggo
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.