Detección de Conectividad WEB

Iniciado por jjcoronas2017, 4 Junio 2017, 17:29 PM

0 Miembros y 1 Visitante están viendo este tema.

jjcoronas2017

Saludos, modifiqué un fragmento de código bajado de la web que me permite en VB.NET verificar el estado de conexión a Internet con un formulario pequeño, el cual envía un dato a través de puerto serial (USB) a una tarjeta Arduino UNO R3 para que actúe en consecuencia. El código lo ejecuto dentro de un timer con un intervalo de 10 minutos, pero al correrlo (lo puse en segundos para probar su funcionamiento) cada vez que transcurre el tiempo fijado, obviamente ejecuta la acción y la tarjeta actúa, ya que recibe el dato. Lo que necesito es que evalúe el estado cada cierto tiempo y solo si se altera el estado de la conexión que envíe el dato. ¿Qué me sugieren hacer? Anexo el código para que puedan ver lo que actualmente hace:
Código (vbnet) [Seleccionar]

Imports System.Net.NetworkInformation
Imports System.Threading
Public Class Form1
   Private Sub InitializeTimer()
       Timer1.Interval = 10000
       Timer1.Enabled = True
   End Sub
   Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
       If My.Computer.Network.IsAvailable() Then
           Try
               If My.Computer.Network.Ping("8.8.8.8", 1000) Then
                   Label1.Text = "Conectado."
                   Label1.Location = New Point(131, 65)
                   Label1.ForeColor = Color.White
                   Me.BackColor = Color.Green
                   SerialPort1.Open()
                   SerialPort1.Write("1")
                   System.Threading.Thread.Sleep(3000)
                   SerialPort1.Write("2")
                   SerialPort1.Close()
               Else
                   Label1.Text = "Error de conexión."
                   Label1.Location = New Point(95, 65)
                   Label1.ForeColor = Color.White
                   Me.BackColor = Color.Red
                   SerialPort1.Open()
                   SerialPort1.Write("0")
                   System.Threading.Thread.Sleep(3000)
                   SerialPort1.Write("2")
                   SerialPort1.Close()
               End If
           Catch ex As PingException
               Label1.Text = "Error de conexión."
               Label1.Location = New Point(95, 65)
               Label1.ForeColor = Color.White
               Me.BackColor = Color.Red
               SerialPort1.Open()
               SerialPort1.Write("0")
               System.Threading.Thread.Sleep(3000)
               SerialPort1.Write("2")
               SerialPort1.Close()
           End Try
       Else
           Label1.Text = "Error de conexión."
           Label1.Location = New Point(95, 65)
           Label1.ForeColor = Color.White
           Me.BackColor = Color.Red
           SerialPort1.Open()
           SerialPort1.Write("0")
           System.Threading.Thread.Sleep(3000)
           SerialPort1.Write("2")
           SerialPort1.Close()
       End If
   End Sub