MsComm Seriale

martedì 26 luglio 2005 - 16.27

Ikin Profilo | Newbie

Ciao,
voglio comunicare mediante la porta seriale con uno strumento.

Trasmetto una stringa (RICHIESTA dati) e lo strumento mi risponde con una sua stringa di dati (RISPOSTA).

Il problema è questo:
voglio spedire "ciclicamente" la RICHIESTA dati allo strumento e, quando esso ha inviato la sua RISPOSTA , inviare una nuova stringa e via dicendo...

Lo strumento, però, non mi risponde ad intervalli fissi, ma a volte impiega + tempo ad elaborare i dati, a volte molto meno tempo.

Ho pensato di inviare la RICHIESTA non appena viene ricevuta la RISPOSTA mediante l'evento MsComm.CommEvent=2, senza utilizzare il timer (il quale invia la RICHIESTA ad un tempo ben preciso, con la possibilità di generare conflitti lungo la linea di ricetrasmissione).

Il codice è il seguente:

Private Sub axMSComm1_OnComm(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles AxMSComm1.OnComm

Dim bufrx As String

If AxMSComm1.CommEvent = comEvReceive Then

bufrx = AxMSComm1.Input 'Leggo contenuto buffer di ricez e svuoto .input

If Len(bufrx) Then
tbRx.Text = bufrx
End If

cntRic += 1
tbRic.Text = cntRic

indirizzo = 1
InviaStringa(indirizzo)

Else
InviaStringa(indirizzo)
End If

End Sub

Private Sub InviaStringa(ByRef Indirizzo As Short)
Dim st As String
Dim temp As String
Dim i As Short

Try
If (Indirizzo < 9) Then
temp = "0" & Indirizzo & "03FE000041"
Else
temp = Indirizzo & "03FE000041"
End If

st = ":" & temp & LRC(temp) & Chr(13) & Chr(10) '13=0D 10=0A
AxMSComm1.Output = st
tbTx.Text = st

End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

End Sub

Il mio problema è che, dopo aver inviato la stringa di RICHIESTA x la prima volta e aver ricevuto la RISPOSTA, successivamente non viene + inviata la RICHIESTA...

Grazie

Nicola.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5