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 tilbageIf 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