Avatar billede zelman Nybegynder
27. januar 2005 - 12:22 Der er 2 kommentarer og
1 løsning

Tjekke en string om den ender med en bestemt ASCII karakter (CR)

Er der nogle, som kan hjælpe med nedenstående kode. Grundlæggende skal jeg tjekke om den modtaget streng er lig med eks. "SEND" og udføre If løkken hvis/så snart at der modtages en ASCII (CR). Jeg har prøvet i første omgang med at tjekke på tallet 1 (se 'Hvis kommando så send flg. streng tilbage
        If RR = "1" Then...) men det virker ikke da der kommer noget ASCII kode, som man ikke kan se. Kort sagt: Kan man tjekke om strengen indeholder ex. "SEND" + Bestemt ASCII karakter.

...
Public Class Form1
    Inherits System.Windows.Forms.Form

    Dim comport As Byte = 2
    Dim baudrate As UInt32 = Convert.ToUInt32(9600)
    Dim databit As Byte = 8
    Dim parity As Byte = 0
    Dim stopbit As Byte = 1
    Dim timeout As UInt16 = Convert.ToUInt16(100)
    Dim checksum As Byte = 0
    Dim recieve As UInt16
    Dim result As UInt16

    'Initialiserer alle 8 kanaler på 87017
    Dim AI_Ch(8) As Single

    'Hvilken slot sidder 87017 i
    Dim slot87017 As Integer = 3

...

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Åbner COM port
        result = Dcon.UART.Open_Com(comport, baudrate, databit, parity, stopbit)
        COMStatus.Text = Convert.ToString(result)
        'Åbner for 87017
        Wcon.i87K_Open_COM()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'Luk 87017
        Wcon.i87K_Close_COM()
        'Lukker COM port
        Dcon.UART.Close_Com(comport)
        'Afslut program
        Application.Exit()
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Dim r(100) As Byte
        Dim s(100) As Byte
        Dim RR As String
        Dim SS As String
        Dim wt As UInt16
        recieve = Dcon.UART.Receive_Cmd(comport, r, timeout, Convert.ToUInt16(0), wt)
        RR = System.Text.Encoding.ASCII.GetString(r, 0, r.Length)
        Modtaget.Text = RR
        Wcon.i87017.AnalogIn_All(slot87017, 0, AI_Ch)
        Label1.Text = Convert.ToString(AI_Ch(0))
        Label2.Text = Convert.ToString(AI_Ch(1))
        Label3.Text = Convert.ToString(AI_Ch(2))
        Label4.Text = Convert.ToString(AI_Ch(3))

        'Hvis kommando så send flg. streng tilbage
        If RR = "1" Then
            Sendt.Text = "Sender kommando 1 tilbage"

            'Læg værdier for hver kanal i AI_Ch 0-7
            Wcon.i87017.AnalogIn_All(slot87017, 0, AI_Ch)

            SS = Modtaget.Text
            s = System.Text.Encoding.ASCII.GetBytes(SS)
            Dcon.UART.Send_Cmd(comport, s, Convert.ToUInt16(0))
        End If
    End Sub
End Class
Avatar billede iceyblue Nybegynder
12. februar 2005 - 02:48 #1
"Send" kan du blot tjekke på helt normal vis, efter du har konverteret det om til en string....derudover, kan du tjekke for specifikke ascii(unicode) tegn på denne måde...if(blabla=="/u000003") ascii karakter #3 er fx. "End Of Text"...

Den officielle oversigt er selvfølgelig et must ;)
http://www.lookuptables.com/
Avatar billede iceyblue Nybegynder
12. februar 2005 - 02:50 #2
bth....hvis du vil tjekke for CR...er det blot "/u000013"...
Avatar billede zelman Nybegynder
04. juli 2006 - 10:10 #3
lukker
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester