Visual Basic.NET - Interrupciones

   
Vista:

Interrupciones

Publicado por biki (38 intervenciones) el 27/01/2011 08:29:41
Hola buenas,

Tengo la siguiente intrerrupcion:

Public Sub puerto2_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles puerto2.DataReceived

dentro de la cual solo cuando termino de procesar la informacion deseada vuelvo a habilitar los puertos mediante la sigueiten funcion:

Me.habilitarPuertos(puertos) que sonciste en habilitar todas las interrupciones:

Public Sub habilitarPuertos(ByVal arrayPuertos)
Try
AddHandler puerto20.DataReceived, AddressOf puerto20_DataReceived
AddHandler puerto19.DataReceived, AddressOf puerto19_DataReceived
AddHandler puerto18.DataReceived, AddressOf puerto18_DataReceived
AddHandler puerto17.DataReceived, AddressOf puerto17_DataReceived
AddHandler puerto16.DataReceived, AddressOf puerto16_DataReceived
AddHandler puerto15.DataReceived, AddressOf puerto15_DataReceived
AddHandler puerto14.DataReceived, AddressOf puerto14_DataReceived
AddHandler puerto13.DataReceived, AddressOf puerto13_DataReceived
AddHandler puerto12.DataReceived, AddressOf puerto12_DataReceived
AddHandler puerto11.DataReceived, AddressOf puerto11_DataReceived
AddHandler puerto10.DataReceived, AddressOf puerto10_DataReceived
AddHandler puerto9.DataReceived, AddressOf puerto9_DataReceived
AddHandler puerto8.DataReceived, AddressOf puerto8_DataReceived
AddHandler puerto7.DataReceived, AddressOf puerto7_DataReceived
AddHandler puerto6.DataReceived, AddressOf puerto6_DataReceived
AddHandler puerto5.DataReceived, AddressOf puerto5_DataReceived
AddHandler puerto4.DataReceived, AddressOf puerto4_DataReceived
AddHandler puerto3.DataReceived, AddressOf puerto3_DataReceived
AddHandler puerto2.DataReceived, AddressOf puerto2_DataReceived
AddHandler puerto1.DataReceived, AddressOf puerto1_DataReceived
puertosHabilitados = True
Catch ex As Exception
End Try
End Sub

Sin embargo cuando me encuentro en la funcion principal, no se han acabado de habilitar los puertos cuando ya me vuelve a saltar la interrupcion. Como puedo hacer para que la funcion principal espera a la funcion de habilitarPuertos antes de que vuelva a saltar la interrupcion?? os pongo el codigo completo.

Gracias


Public Sub puerto2_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles puerto2.DataReceived
Try
Me.deshabilitarPuertos(puertos)
Dim arrayBytes(puerto2.BytesToRead - 1) As Byte
Me.puerto2.Read(arrayBytes, 0, puerto2.BytesToRead)
Dim i

If arrayBytes.Length >= 21 Then
For i = 0 To 20
If arrayBytes(i).ToString.Length < 2 Then
resultado = resultado & " " & "0" & arrayBytes(i)
Else
resultado = resultado & " " & arrayBytes(i)
End If
Next
Else
For i = 0 To arrayBytes.Length - 1
If arrayBytes(i).ToString.Length < 2 Then
resultado = resultado & " " & "0" & arrayBytes(i)
Else
resultado = resultado & " " & arrayBytes(i)
End If
Next
Me.habilitarPuertos(puertos)
Exit Sub
End If
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Interrupciones

Publicado por abraham (14 intervenciones) el 27/01/2011 19:10:35
Y si ultilizas Hilos y esperas a que termine para continuar con tu programa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar